天哪天哪天哪
我們用f[i][j]來表示前i個數,有j對逆序對的方案數,so考慮插入,因為i比1到i-1裡面的任何乙個數都要大,所以插入的時候後面有多少個數,就會多出多少逆序對,所以前面的符合條件的都可以轉移,f[i][j]=sigma(f[i-1][j-k]),k屬於0到i-1,然而字首和神煩.
#include#include#include#include#include#include#define ll long long
#define fo(i,a,b) for(int i=a;i<=b;i++)
using namespace std;
#define n 1005
#define inf 10000
int f[n][n],s[n][n];
int n,m;
int main()
if(j)s[i][j]=s[i][j-1];
s[i][j]+=f[i][j];
s[i][j]%=inf;
// s[i][j]=f[i][j];else s[i][j]=s[i][j-1]+f[i][j];
} }cout<
bzoj2431 HAOI2009 逆序對數列
對於乙個數列,如果有ii aj,那麼我們稱ai與aj為一對逆序對數。若對於任意乙個由1 n自然數組成的數列,可以很容易求出有多少個逆序對數。那麼逆序對數為k的這樣自然數數列到底有多少個?第一行為兩個整數n,k。寫入乙個整數,表示符合條件的數列個數,由於這個數可能很大,你只需輸出該數對10000求餘數...
bzoj2431 HAOI2009 逆序對數列
dp 令b i j 表示n i,k j時的答案 則b 1 0 1 b 2 0 1 b 2 1 1 b 3 0 1 b 3 1 2 b 3 2 2 b 3 3 1 我們觀察發現 至少我是觀察 b i j b i 1 j i 1 b i 1 j 注意j i 1 0時令其為0 j i 1 i 2 2,即j...
BZOJ2431 HAOI2009 逆序對數列
對於乙個數列,如果有ii aj,那麼我們稱ai與aj為一對逆序對數。若對於任意乙個由1 n自然數組成的數列,可以很容易求出有多少個逆序對數。那麼逆序對數為k的這樣自然數數列到底有多少個?第一行為兩個整數n,k。寫入乙個整數,表示符合條件的數列個數,由於這個數可能很大,你只需輸出該數對10000求餘數...