CH0302 遞迴 非遞迴實現組合型列舉

2022-09-19 18:51:12 字數 805 閱讀 6966

描述

從 1~n 這 n 個整數中隨機選出 m 個,輸出所有可能的選擇方案。n>0,  0<=m<=n,  n+(n-m)<=25。

輸入格式

兩個整數n,m。

輸出格式

按照從小到大的順序輸出所有方案每行1個。

首先,同一行內的數公升序排列,相鄰兩個數用乙個空格隔開。其次,對於兩個不同的行,對應下標的數一一比較,字典序較小的排在前面(例如1 3 9 12排在1 3 10 11前面)。

樣例輸入

5 3
樣例輸出
1 2 3 

1 2 4

1 2 5

1 3 4

1 3 5

1 4 5

2 3 4

2 3 5

2 4 5

3 4 5

1 #include2

using

namespace

std;

3 vectorf;

4int

main()516

if(u+k>n+1||u>n)return;17

f.push_back(u);

18 dfs(u+1,k-1

);19

f.pop_back();

20 dfs(u+1

,k);

21};

22 dfs(1

,m);

2324

return0;

25 }

CH 0302遞迴 非遞迴實現組合型列舉

描述 從 1 n 這 n 個整數中隨機選出 m 個,輸出所有可能的選擇方案。n 0,0 m n,n n m 25。輸入格式 兩個整數n,m。輸出格式 按照從小到大的順序輸出所有方案 每行1個。首先,同一行內的數公升序排列,相鄰兩個數用乙個空格隔開。其次,對於兩個不同的行,對應下標的數一一比較,字典序...

非遞迴解決組合問題

從m 個互不相同元素中取 n 個元素,一般選用遞迴或回溯演算法解決,本文旨在利用進製轉換的方法達到這一目的。如下 sub getall byval num as integer,byref x as variant,byref result as string,optional byref all ...

非遞迴 求所有組合

從 0,nn 1 這nn個數裡面,找到所有組合 例如con 5,3 0 1 2 0 1 3 0 1 4 0 2 3 0 2 4 0 3 4 1 2 3 1 2 4 1 3 4 2 3 4 類似於加法器,初始是0,1,2 每次給最後的乙個數字加一 令kmax 3,k在 0,kmax 則第k位置的數字進...