[BZOJ2431][HAOI2009]逆序对数列(DP)

前缀和优化一下DP

O(n3)->O(n2)

Code

#include <cstdio>
#define N 1010
const int mo=1e4;
int n,m,f[N][N],x;
int main(){
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;f[i++][0]=1);
	for(int i=2;i<=n;++i){
		x=f[i-1][0];
		for(int j=1;j<=m;++j){
			if(j-i>=0) x-=f[i-1][j-i];
			x+=f[i-1][j];
			f[i][j]=x%mo;
		}
	} 
	printf("%d\n",f[n][m]);
	return 0;
}

 

 

 

posted @ 2018-06-01 20:18  void_f  阅读(137)  评论(0编辑  收藏  举报