遞迴實現指數型列舉

2021-09-27 17:43:15 字數 1194 閱讀 3279

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

輸入乙個整數n。

每行輸出一種方案。

同一行內的數必須公升序排列,相鄰兩個數用恰好1個空格隔開。

對於沒有選任何數的方案,輸出空行。

本題有自定義校驗器(spj),各行(不同方案)之間的順序任意。

1 ≤n

≤15

1≤n≤15

1≤n≤15

322 31

1 31 2

1 2 3

rmm,港道理這題確實比較簡單,想必大家都會,但是這題確實體現了幾個問題,

一定要看題看清樣例啊,答案是有空選情況的,之前沒看見被卡了半天,同時我用迭代加深寫的這道題,說明我基礎還不紮實。qaq

迭代加深的思想就是列舉所有長度,每一層都從自身加一到n之間選乙個數,開乙個陣列記錄被選的數字,如果選夠了就輸出。

對於遞迴的思路就是開乙個滾動陣列,對1~n每乙個數字列舉它選和不選的兩種情況

c od

ecode

code

#include

//迭代加深

#define maxn 100010

using namespace std;

int a[maxn]

;int n, num =0;

void

dfs(

int c,

int now)

for(

int i = now +

1; i <= n;

++i)

return;}

intmain()

return0;

}

#include

//遞迴列舉

#define maxn 10010

using namespace std;

vector<

int> v;

int n;

void

dfs(

int x)

dfs(x +1)

; v.

push_back

(x);

dfs(x +1)

; v.

pop_back()

;return;}

intmain()

遞迴實現指數型列舉

從 1 n 這 n 個整數中隨機選取任意多個,輸出所有可能的選擇方案。輸入格式 輸入乙個整數 n。輸出格式 每行輸出一種方案。同一行內的數必須公升序排列,相鄰兩個數用恰好1個空格隔開。對於沒有選任何數的方案,輸出空行。本題有自定義校驗器 spj 各行 不同方案 之間的順序任意。資料範圍1 n 15 ...

遞迴實現指數型列舉

從 1 n 這 n 個整數中隨機選取任意多個,輸出所有可能的選擇方案。輸入格式 輸入乙個整數n。輸出格式 每行輸出一種方案。同一行內的數必須公升序排列,相鄰兩個數用恰好1個空格隔開。對於沒有選任何數的方案,輸出空行。本題有自定義校驗器 spj 各行 不同方案 之間的順序任意。資料範圍 1 n 15 ...

遞迴實現指數型列舉

從 1 n 這 n 個整數中隨機選取任意多個,輸出所有可能的選擇方案。輸入格式 輸入乙個整數n。輸出格式 每行輸出一種方案。同一行內的數必須公升序排列,相鄰兩個數用恰好1個空格隔開。對於沒有選任何數的方案,輸出空行。本題有自定義校驗器 spj 各行 不同方案 之間的順序任意。資料範圍 1 n 15 ...