[BZOJ]1996: [Hnoi2010]chorus 合唱队 区间DP

来源:互联网 发布:买鞋软件 编辑:程序博客网 时间:2024/05/29 07:00

BZOJ难得一见的水题啊,连我这种蒟蒻都只想了几分钟,一次AC……

#include<cstdio>#include<cstring>const int mod=19650827;const int Q=1005;int n,a[Q],f[Q][Q][2];//i~j 插入的在左还是右 int main(){memset(f,0,sizeof(f));scanf("%d",&n);for(int i=1;i<=n;i++) {scanf("%d",&a[i]);f[i][i][1]=1;}for(int l=1;l<n;l++)for(int i=1;i+l<=n;i++){int j=i+l;if(a[i]<a[i+1]) f[i][j][0]+=f[i+1][j][0];f[i][j][0]%=mod;if(a[i]<a[j]) f[i][j][0]+=f[i+1][j][1];f[i][j][0]%=mod;if(a[j]>a[i]) f[i][j][1]+=f[i][j-1][0];f[i][j][1]%=mod;if(a[j]>a[j-1]) f[i][j][1]+=f[i][j-1][1];f[i][j][1]%=mod;}printf("%d",(f[1][n][0]+f[1][n][1])%mod);}


1 1
原创粉丝点击