1401 逆序統計
時間限制: 1 s
空間限制: 128000 kb
題目等級 : 鑽石 diamond
題解 檢視執行結果
題目描述 description
我們說(i,j)是a1,a2,…,an的乙個逆序對當且僅當j>i且ai>aj。例如2,4,1,3,5的逆序對有3個,分別為(1,3),(2,3),(2,4)。現在已知n和k,求1..n的所有特定排列,這些排列的逆序對的數量恰好為k。輸出這些特定排列的數量。
例如n=5,k=3的時候,滿足條件的排列有15個,它們是:
1,2,5,4,3 1,3,4,5,2 1,3,5,2,4 1,4,2,5,3 1,4,3,2,5
1,5,2,3,4 2,1,4,5,3 2,1,5,3,4 2,3,1,5,4 2,3,4,1,5
2,4,1,3,5 3,1,2,5,4 3,1,4,2,5 3,2,1,4,5 4,1,2,3,5
輸入描述 input description
輸入第一行有兩個整數n和k。其中(n<=100,k<=n*(n-1)/2)
輸出描述 output description
將1..n的逆序對數量為k的特定排列的數量輸出,為了避免高精度計算,請將結果mod10000後再輸出
樣例輸入 sample input
【樣例輸入1】
5 3【樣例輸入2】
10 7
【樣例輸入3】
10 10
樣例輸出 sample output
【樣例輸出1】
【樣例輸出2】
【樣例輸出3】
program df;
var i,j,n,m,x,y,z,k,t:longint;
f:array[0..100,0..10000] of longint;
begin
readln(n,k);
for i:=1 to n do
f[i,0]:=1;
f[2,1]:=1;
for i:=3 to n do
for j:=0 to (i*(i-1)) div 2 do
f[i,j]:=(f[i,j-1]+f[i-1,j]-f[i-1,j-i]+10000) mod 10000;
writeln(f[n,k]);
end.
統計問題 遞推
題目的解法 設ans n 為走n步的所有不同走法 up n 為第n步是向上時的所有不同走法 left n 為第n步是向左時的所有不同走法 right n 為第n步是向右時的所有不同走法。則有以下遞推關係 up n up n 1 left n 1 right n 1 left n up n 1 lef...
SSL ZYC 逆序統計
題目大意 求1到n這n個數中m個逆序對的方案總數。答案取摸10000 思路 一道dp題。由於資料規模很大,所以要用滾動陣列。我們可以發現這道題是有規律的。這道題有兩個轉移方程 1 if j i f i 1 j f i 1 1 j f i 1 j 1 2 if j i f i 1 j f i 1 1 ...
hdu 統計問題 遞推
problem description 在一無限大的二維平面中,我們做如下假設 1 每次只能移動一格 2 不能向後走 假設你的目的地是 向上 那麼你可以向左走,可以向右走,也可以向上走,但是不可以向下走 3 走過的格仔立即塌陷無法再走第二次 求走n步不同的方案數 2種走法只要有一步不一樣,即被認為是...