演算法訓練 排列問題

2021-09-10 02:31:12 字數 739 閱讀 1144

求乙個0~n-1的排列(即每個數只能出現一次),給出限制條件(一張n*n的表,第i行第j列的1或0,表示為j-1這個數不能出現在i-1這個數後面,並保證第i行第i列為0),將這個排列看成乙個自然數,求從小到大排序第k個排列。

輸入描述:

n<=10,k<=500000

輸入樣例:

3 20 1 1

1 0 0

0 1 0

輸出描述:

第一行為n和k,接下來的n行,每行n個數,0表示不能,1表示能

輸出樣例:

1 0 2

#include

#include

int limit[15]

[15];

//限制條件

int number[15]

,occupy[15]

;int n,k,cnt=0;

intjudge

(int pos,

int n)

//判斷j這個數能不能出現在i的後面

void

calallsort

(int depth)

} occupy[i]=1

;calallsort

(depth+1)

; occupy[i]=0

;}}}

intmain()

}calallsort(0

);return0;

}

演算法訓練 排列問題

問題描述 求乙個0 n 1的排列 即每個數只能出現一次 給出限制條件 一張n n的表,第i行第j列的1或0,表示為j 1這個數不能出現在i 1這個數後面,並保證第i行第i列為0 將這個排列看成乙個自然數,求從小到大排序第k個排列。資料規模和約定 n 10,k 500000 輸入格式 第一行為n和k,...

演算法訓練 排列問題

題目鏈結 問題描述 求乙個0 n 1的排列 即每個數只能出現一次 給出限制條件 一張n n的表,第i行第j列的1或0,表示為j 1這個數不能出現在i 1這個數後面,並保證第i行第i列為0 將這個排列看成乙個自然數,求從小到大排序第k個排列。include include using namespac...

藍橋杯VIP試題 演算法訓練 排列問題

資源限制 時間限制 1.0s 記憶體限制 512.0mb 問題描述 求乙個0 n 1的排列 即每個數只能出現一次 給出限制條件 一張n n的表,第i行第j列的1或0,表示為j 1這個數不能出現在i 1這個數後面,並保證第i行第i列為0 將這個排列看成乙個自然數,求從小到大排序第k個排列。資料規模和約...