DP 高精 逆序對(jzoj 2014)

2021-09-25 01:34:17 字數 1097 閱讀 7178

有乙個長為n的序列(由1,2,3,……n組成),問經過某種調整之後,有k個逆序對(即在前面的乙個數大於後面的乙個數這樣的對)的種數,有多組資料,以0 0結尾

3 0

3 13 2

3 34 2

4 10

13 23

18 80

0 0

122

15046936280

184348859235088

1 <= 資料組數 <=100, 1 <= n <= 50, 0 <= k <= 1500。

首先設f[i

][j]

f[i][j]

f[i][j

]為前i

ii個字元有j

jj對逆序對的種數,然後因為插入的地方不同,且不同地方增加的逆序對也不同,所以得出:f[i

][j]

=∑k=

0min

(i−1

,j)f

[i−1

][j−

k]

f[i][j]=\sum_^f[i-1][j-k]

f[i][j

]=k=

0∑mi

n(i−

1,j)

​f[i

−1][

j−k]

注:取min值是因為當k

kk大於j

jj時j−k

j-kj−

k會小於0

其次看到樣例,我們可以發現資料是十分大的,所以要用高精,因為時間記憶體的限制,所以我們要壓位

#include

#define min(x,y) (x)<(y)?(x):(y)

using

namespace std;

int x,y,f[51]

[1501][

11];int

main()

scanf

("%d %d"

,&x,

&y);

while

(x!=

0||y!=0)

return0;

}

JZOJ DP 高精 逆序對

有個數123 他是按順序排的 後面的比前面的大 而312 它被打亂了 也就出現了後面的比前面的 也就是這個數的第i位和第j位 i i j a i a j a i a j a i a j 這樣的稱為逆序對 123的逆序對為0 312的逆序對為2 3,2 和 3,1 在1,2,3 n的排列中,有k對逆序...

乘積最大 DP (非高精版)

題目描述 今年是國際數學聯盟確定的 2000 世界數學年 又恰逢我國著名數學家華羅庚先生誕辰90周年。在華羅庚先生的家鄉江蘇金壇,組織了一場別開生面的數學智力競賽的活動,你的乙個好朋友xz也有幸得以參加。活動中,主持人給所有參加活動的選手出了這樣一道題目 設有乙個長度為n的數字串,要求選手使用k個乘...

洛谷1005 矩陣取數遊戲(dp 高精)

題目描述 description 帥帥經常跟同學玩乙個矩陣取數遊戲 對於乙個給定的n m的矩陣,矩陣中的每個元素aij均為非負整數。遊戲規則如下 1.每次取數時須從每行各取走乙個元素,共n個。m次後取完矩陣所有元素 2.每次取走的各個元素只能是該元素所在行的行首或行尾 3.每次取數都有乙個得分值,為...