有個數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對逆序對 有多少種排列的方法 有多個資料,每行兩個數,n與k 最後以0 0結尾 多行,每行乙個數,為方案 s am plei nput sample input sample inpu t3 0
3 13 2
3 34 2
4 10
13 23
18 80
0 0s am
pleo
utpu
tsample output
sample
outp
ut
122
15046936280
184348859235088
dp
設f [i
][j]
f[i][j]
f[i][j
]為有i位數j個逆序對的數的排列方案
動態轉移方程:
例如312
加一位4
原本逆序對有2對
如果加到最前面第一位(4312)
那就對了三對
加到第二位(3412)
那就多了兩對
注意:要用高精壓位
#include
#include
#include
#define inf 1000000000
using
namespace std;
int f[55]
[2250][
10];int n,m;
void
add(
int*a,
int*b)
return;}
void
write
(int
*a)printf
("\n");
return;}
intmain()
return0;
}
DP 高精 逆序對(jzoj 2014)
有乙個長為n的序列 由1,2,3,n組成 問經過某種調整之後,有k個逆序對 即在前面的乙個數大於後面的乙個數這樣的對 的種數,有多組資料,以0 0結尾 3 0 3 13 2 3 34 2 4 10 13 23 18 80 0 0122 15046936280 1843488592350881 資料組...
c 高精除以高精
include using namespace std int a 1000 b 1000 int len1,len2,len int index int re 1000 p 0 記錄結果 intjudge return0 int main for i 0 isize i len1 n.size l...
高精加 高精乘
高精度演算法是每個初學者的入門必備,在我們做題目的時候,總會遇到一下精度太高的問題,即使用了long long也遠遠不夠。所以學習高精度也是很有必要的。本篇文章就以下面這道題為例子,簡單介紹一下高精加和高精乘。洛谷原題 洛谷部落格題解 本蒟的思路就是高精乘 高精加,就是把高精乘的模板套上去接著套高精...