資源限制
時間限制:1.0s 記憶體限制:512.0mb
問題描述
求乙個0~n-1的排列(即每個數只能出現一次),給出限制條件(一張n*n的表,第i行第j列的1或0,表示為j-1這個數不能出現在i-1這個數後面,並保證第i行第i列為0),將這個排列看成乙個自然數,求從小到大排序第k個排列。
資料規模和約定
n<=10,k<=500000
輸入格式
第一行為n和k,接下來的n行,每行n個數,0表示不能,1表示能
輸出格式
所求的排列
樣例輸入
3 2樣例輸出0 1 1
1 0 0
0 1 0
1 0 2解釋:對於n=3的沒有任何限制的情況
第一:0 1 2
第二:0 2 1
第三:1 0 2
第四:1 2 0
第五:2 0 1
第六:2 1 0
根據題目所給的限制條件由於2不能出現在1後面,0不能出現在2後面
第一:0 2 1
第二:1 0 2
第三:2 1 0
#include
#include
using
namespace std;
int n, k, cnt =0;
int arr[10]
, vis[10]
[10];
bool
judge()
intmain()
while
(next_permutation
(arr, arr + n));
for(
int i =
0; i < n; i++
) cout << endl;
return0;
}
藍橋杯 湊算式 全排列
湊算式b def a 10 c ghi 如果顯示有問題,可以參見 圖1.jpg 這個算式中a i代表0 9的數字,不同的字母代表不同的數字。比如 6 8 3 952 714 就是一種解法,5 3 1 972 486 是另一種解法。這個算式一共有多少種解法?注意 你提交應該是個整數,不要填寫任何多餘的...
藍橋杯 帶分數 全排列
題目 問題描述 100 可以表示為帶分數的形式 100 3 69258 714。還可以表示為 100 82 3546 197。注意特徵 帶分數中,數字1 9分別出現且只出現一次 不包含0 類似這樣的帶分數,100 有 11 種表示法。輸入格式 從標準輸入讀入乙個正整數n n 1000 1000 輸出...
藍橋杯 帶分數(搜尋 全排列)
問題描述 100 可以表示為帶分數的形式 100 3 69258 714。還可以表示為 100 82 3546 197。注意特徵 帶分數中,數字1 9分別出現且只出現一次 不包含0 類似這樣的帶分數,100 有 11 種表示法。輸入格式 從標準輸入讀入乙個正整數n n 1000 1000 輸出格式 ...