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