遞迴實現組合型列舉

2021-09-18 01:47:45 字數 888 閱讀 2101

題目:

從 1~n 這 n 個整數中隨機選出 m 個,輸出所有可能的選擇方案。

輸入格式

兩個整數 n,m

,在同一行用空格隔開。

輸出格式

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

首先,同一行內的數公升序排列,相鄰兩個數用乙個空格隔開。

其次,對於兩個不同的行,對應下標的數一一比較,字典序較小的排在前面(例如1 3 5 7排在1 3 6 8前面)。

資料範圍

n>0 ,

0≤m≤n ,

n+(n−m)≤25

輸入樣例:

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

**:

#include using namespace std;

#include int n,m;

vectorv;

vector>res;

#define boost ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);//這個東西很重要,因為實在是太長了,所以我每次都打出來,這樣下一次就會記住了

void dfs(int u,int state,int sum)//u 表示遞迴的層數,state表示要選擇的數,sum 表示當前已經選擇的數的個數

此**的思路是模仿yxc大佬的;

如果**不對,希望大佬們幫我改正;

遞迴實現組合型列舉

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

遞迴實現組合型列舉

遞迴實現組合型列舉 93.遞迴實現組合型列舉 題目提交記錄 討論題解 從 1 n 這 n 個整數中隨機選出 m 個,輸出所有可能的選擇方案。輸入格式 兩個整數 n,mn,m 在同一行用空格隔開。輸出格式 按照從小到大的順序輸出所有方案,每行1個。首先,同一行內的數公升序排列,相鄰兩個數用乙個空格隔開...

遞迴實現組合型列舉

時間限制 1 sec 記憶體限制 128 mb 提交 狀態 題目描述 從 1 n 這 n 個整數中隨機選出 m 個,輸出所有可能的選擇方案。n 0,0 m n,n n m 25。輸入乙個整數n。輸出按照從小到大的順序輸出所有方案,每行1個。首先,同一行內的數公升序排列,相鄰兩個數用乙個空格隔開。其次...