组合数(DFS)
組合數
點我 描述特定順序:每一個組合中的值從大到小排列,組合之間按逆字典序排列。
本質是遞歸求解,通過判斷r與0比較來安排出遞歸次數。 1 #include<iostream> 2 #include<cstdio> 3 using namespace std; 4 int a[11]; 5 int m,n; 6 int dfs(int x,int y) 7 { 8 int i,j; 9 if(y==0) 10 { 11 for(i=m;i>=1;i--) 12 cout<<a[i]; 13 cout<<endl; 14 } 15 else 16 { 17 for(i=x;i>=y;i--) 18 { 19 a[y]=i; 20 dfs(i-1,y-1); 21 } 22 } 23 } 24 int main() 25 { 26 while(cin>>n>>m) 27 { 28 dfs(n,m); 29 } 30 }
?
轉載于:https://www.cnblogs.com/a1225234/p/4542429.html
總結