(DFS)求出n个数中选择m个数的所有可能
生活随笔
收集整理的這篇文章主要介紹了
(DFS)求出n个数中选择m个数的所有可能
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
// step 已選的元素個數
//pinum 要選的元素的數量
// picked 選的元素
int n,num[N],picked[N],pinum;
void pick(int step,int x){// 這個路徑選了 m個了就返回了if(step == pinum + 1){for(int i=1;i<step;++i)cout<< picked[i]<<" ";cout<<endl;return;}// i的初始化是x是遞增的,是避免出現重復的for(int i = x;i<=n;++i){picked[step] = num[i];pick(step+1,i+1);}
}int main()
{cin>>n>>pinum;for(int i=1;i<=n;++i)cin>>num[i];pick(1,1);return 0;
}
總結
以上是生活随笔為你收集整理的(DFS)求出n个数中选择m个数的所有可能的全部內容,希望文章能夠幫你解決所遇到的問題。