不降原則是什么意思?
不降原則是個神馬意思呢舉個例子:
比如說在6里面隨便選5個數,那么選法都是什么呢?
瞎枚舉?
12345
12346
前兩個還不會弄混
然后很可能就亂了
少點數可能不會亂
但是多了就不好整了
比如說在100里隨便選50個數。
1 2 3 4 5 6 7 8 9 10 11 12......
Die.
所以我們可以運用不降原則:
保證枚舉的這些數是升序排列
其實真正的不降原則還可以平
比如 1 2 2 3 3 4......
但是這里要說的“不降原則”不能平哦!
對于這道題也不能平
否則就有重復數字了
拿6個里面選3個舉例子
1 2 3
1 2 4
1 2 5
1 2 6
第一輪枚舉完畢。
第二個數加一
1 3 ?
這個“?”應該是4,因為是升序排列
1 3 4
1 3 5
1 3 6
接著,就是這樣
1 4 5
1 4 6
1 5 6
第一位是1枚舉完畢
第一位是2呢?
2 3 4
2 3 5
2 3 6
2 4 5
2 4 6
2 5 6
就是這樣的,枚舉十分清晰,對嗎?
以此類推.....
3 4 5
3 4 6
3 5 6
4 5 6
然后就枚舉不了了,結束。
所以說,這樣就可以避免判重了。
知道了不降原則,咱們再來see see 代碼
代碼中還是一樣的老套路
一樣的dfs
一樣的參數
咱們最主要看其中不降原則的部分
在dfs函數中,我們明顯能看到一個參數 startx
這是個什么東西呢?
就是當前的初始值
也就是最小的,符合不降原則的參數
這樣一來,就可以去重了!
其實,其中的vis數組可以去掉
究竟怎么去呢?自己想想把!
上一篇RAP醫學上是什么意思
下一篇Chance是什么意思啊