遞推實現指數型列舉 演算法競賽高階指南

2021-10-03 11:53:35 字數 1067 閱讀 5032

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

輸入格式

輸入乙個整數n。

輸出格式

每行輸出一種方案。

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

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

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

資料範圍

1≤n≤15

輸入樣例

3輸出樣例:32

2 31

1 31 2

1 2 3

/*

主要思想:任意選擇多個,那麼我們只需要判斷這個數字是否選擇即可

*/#include

using

namespace std;

int nums[16]

;//0-代表這個數字不用,1-代表這個數字用了

int n;

void

dfs(

int index)

//決定index這個數字是否使用

cout << endl;

return;}

nums[index]=1

;//這個數字使用

dfs(index+1)

;//去判斷下乙個數字

nums[index]=0

;//這個數字不使用

dfs(index+1)

;}intmain()

/*

主要思想:用2進製數字代表這個數字是否取用0代表不取用,1代表取用

則是輸出所有2進製數所有可能

*/#include

#include

using

namespace std;

intmain()

} cout << endl;

}return0;

}

演算法競賽高階指南 遞迴實現指數型列舉

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

演算法 遞迴實現指數型列舉

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

演算法競賽高階指南 遞迴實現排列型列舉

把 1 n 這 n 個整數排成一行後隨機打亂順序,輸出所有可能的次序。輸入格式 乙個整數n。輸出格式 按照從小到大的順序輸出所有方案,每行1個。首先,同一行相鄰兩個數用乙個空格隔開。其次,對於兩個不同的行,對應下標的數一一比較,字典序較小的排在前面。資料範圍 1 n 9 輸入樣例 3輸出樣例 1 2...