遞迴實現指數型列舉

2021-10-14 09:04:26 字數 720 閱讀 4779

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

輸入格式

輸入乙個整數n。

輸出格式

每行輸出一種方案。

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

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

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

資料範圍

1≤n≤151≤n≤15

輸入樣例:

3
輸出樣例:

3

22 3

11 3

1 21 2 3

int n;

bool s[20]; // 用來記錄每個點的狀態.

void dfs(int x)

} cout << endl;

return;

} s[x] = false;

dfs(x+1); // 第乙個分支,不選

//s[x] = false; // 這個恢復現場我覺得完全沒有必要,從回溯狀態進入另一種狀態為什麼不可以,不也正是同一種前面狀態下的另外一種情況嗎

s[x] = true;

dfs(x+1); // 第二個分支,選

//s[x] = false;

}int main()

遞迴實現指數型列舉

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

遞迴實現指數型列舉

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

遞迴實現指數型列舉

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