從 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 ...