時間限制: 1 sec
記憶體限制: 128 mb
提交: 17
解決: 9 [
提交][
狀態][
討論版]
[問題描述]
從n個數中取出r個元素,輸出所有組合
[輸入格式]
一行兩個自然數n和r (1
[輸出格式]
所有的組合,每個組合佔一行,其中的元素從小到大排序,用乙個空格隔開,所有組合按字典序。
[輸入樣例]
5 3[輸出樣例]
1 2 3
1 2 4
1 2 5
1 3 4
……(太多,此處省略)
搜尋 簡單的深搜
剛開始用了乙個next_permutation函式,但是如果剩餘的位數多了就會出現重複,比如,如果從10個數里選擇3個進行排序,則會出現7次重複
#include#includeint n,r;
int visit[25],a[25],b[25];
int dfs(int k,int flag)
} }}int main(){
while(scanf("%d %d",&n,&r)!=eof){
memset(visit,0,sizeof(visit));
for(int i=0;i
xynuoj1326 組合的輸出 dfs
時間限制 1 sec 記憶體限制 128 mb 提交 10 解決 6 提交 狀態 討論版 edit testdata 排列與組合是常用的數學方法,其中組合就是從n個元素中抽出r個元素 不分順序且r n 我們可以簡單地將n個元素理解為自然數1,2,n,從中任取r個數。現要求你不用遞迴的方法輸出所有組合...
1317 組合的輸出
排列與組合是常用的數學方法,其中組合就是從n個元素中抽出r個元素 不分順序且r n 我們可以簡單地將n個元素理解為自然數1,2,n,從中任取r個數。現要求你用遞迴的方法輸出所有組合。例如n 5,r 3,所有組合為 1 2 3 1 2 4 1 2 5 1 3 4 1 3 5 1 4 5 2 3 4 2...
2020 10 06組合的輸出
題目描述 排列與組合是常用的數學方法,其中組合就是從nn個元素中抽出rr個元素 不分順序且r le n r n 我們可以簡單地將nn個元素理解為自然數1,2,n1,2,n,從中任取rr個數。現要求你輸出所有組合。例如n 5,r 3n 5,r 3,所有組合為 12 3 1 2 4 1 2 5 1 3 ...