【BZOJ1996】【HNOI2010】合唱队 [区间DP]
2017-02-25 11:14
260 查看
合唱队
Time Limit: 4 Sec Memory Limit: 64 MB[Submit][Status][Discuss]
Description
#include<iostream> #include<algorithm> #include<cstdio> #include<cstring> #include<cstdlib> #include<cmath> #include<queue> using namespace std; const int ONE=1005; const int MOD=19650827; int n; int a[ONE]; int f[ONE][ONE][2]; int get() { int res,Q=1; char c; while( (c=getchar())<48 || c>57) if(c=='-')Q=-1; if(Q) res=c-48; while((c=getchar())>=48 && c<=57) res=res*10+c-48; return res*Q; } int main() { n=get(); for(int i=1;i<=n;i++) { a[i]=get(); } for(int i=1;i<=n;i++) f[i][i][1]=1; for(int l=n;l>=1;l--) for(int r=l+1;r<=n;r++) { f[l][r][0]=( f[l][r][0] + f[l+1][r][0] * (a[l]<a[l+1]) ) % MOD; f[l][r][0]=( f[l][r][0] + f[l+1][r][1] * (a[l]<a[r]) ) % MOD; f[l][r][1]=( f[l][r][1] + f[l][r-1][0] * (a[r]>a[l]) ) % MOD; f[l][r][1]=( f[l][r][1] + f[l][r-1][1] * (a[r]>a[r-1]) ) % MOD; } printf("%d",(f[1] [0]+f[1] [1]) % MOD); }View Code
相关文章推荐
- [BZOJ]1996: [Hnoi2010]chorus 合唱队 区间DP
- [BZOJ1996][Hnoi2010]chorus 合唱队 区间dp
- 【BZOJ1996】[Hnoi2010]chorus 合唱队【区间DP】
- 【bzoj1996】[Hnoi2010]chorus 合唱队 区间dp
- BZOJ 1996: [Hnoi2010]chorus 合唱队(dp)
- bzoj 1996: [Hnoi2010]chorus 合唱队 dp
- [BZOJ1996]HNOI2010合唱队|DP
- 1996: [Hnoi2010]chorus 合唱队 DP
- 【BZOJ1996】【Hnoi2010】chorus 合唱队 动态规划
- [BZOJ1996][Hnoi2010]chorus 合唱队
- bzoj1996: [Hnoi2010]chorus 合唱队
- [luoguP3205] [HNOI2010]CHORUS 合唱队(区间DP)
- BZOJ 1996: [Hnoi2010]chorus 合唱队 区间dp
- bzoj1996 [Hnoi2010]chorus 合唱队 区间dp
- bzoj 1996 [Hnoi2010]chorus 合唱队
- bzoj1996 [Hnoi2010]chorus 合唱队
- BZOJ 1996 合唱队 - 区间DP(以及DP注意事项)
- bzoj 1996: [Hnoi2010]chorus 合唱队
- BZOJ1996 [Hnoi2010]chorus 合唱队
- BZOJ1996: [Hnoi2010]chorus 合唱队|动态规划