1401 逆序統計 遞推

2021-07-25 17:39:04 字數 1192 閱讀 1984

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種走法只要有一步不一樣,即被認為是...