藍橋杯 排列問題 全排列

2021-10-03 12:58:06 字數 985 閱讀 7533

資源限制

時間限制: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 輸出格式 ...