BZOJ2431: [HAOI2009]逆序对数列

来源:互联网 发布:mysql select 两个表 编辑:程序博客网 时间:2024/05/16 19:34

DP
F[i][j] 表示当前i个元素j个逆序对的方案
然后用类似前缀和的方法更新

#include<cstdio>#include<iostream>using namespace std;char c;inline void read(int &a){    a=0;do c=getchar();while(c<'0'||c>'9');    while(c<='9'&&c>='0')a=(a<<3)+(a<<1)+c-'0',c=getchar();}int f[1001][1001],tp,n,k;int i,j;int main(){   read(n),read(k);    for(i=1;i<=n;++i)      f[i][0]=1;    for(i=2,tp=1;i<=n;++i,tp=1)        for(j=1;j<=k;++j)        {            if(j-i>=0)tp-=f[i-1][j-i];            tp+=f[i-1][j];            f[i][j]=(tp+10000)%10000;        }     printf("%d\n",f[n][k]);    return 0;}
0 0