洛谷 p1880 石子合并 区间dp
2016-12-21 14:30
239 查看
这里写链接内容
错误程序
这个程序前缀和处理错了,在一开始还没处理好s[i]在s[n+i]里就调用了,以至于最小值求错了。
ac程序
只需要把前缀和弄到后面就ac了。。。
错误程序
#include<cstdio> #include<iostream> using namespace std; int n; int a[9999]; int s[9999],f1[999][999]; int f2[999][999]; int main() { scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%d",&a[i]); a[n+i]=a[i]; s[i]=s[i-1]+a[i]; s[i+n]=s[i+n-1]+a[i]; } // for(int i=1;i<=n;i++) for(int i=1;i<=2*n;i++) for(int j=1;j<=2*n;j++) { f1[i][j]=99999999; f2[i][j]=-99999999; } for(int i=1;i<=2*n;i++) { f1[i][i]=0; f2[i][i]=0; } for(int p=1;p<=n-1;p++) for(int i=1;i<=2*n-p;i++) { int j=i+p; for(int k=i;k<=j-1;k++) { f1[i][j]=min(f1[i][j],f1[i][k]+f1[k+1][j]+s[j]-s[i-1]); f2[i][j]=max(f2[i][j],f2[i][k]+f2[k+1][j]+s[j]-s[i-1]); } } int min1=99999999,max1=-99999999; for(int i=1;i<=n;i++) min1=min(f1[i][n+i-1],min1); for(int i=1;i<=n;i++) max1=max(f2[i][n+i-1],max1); printf("%d\n%d",min1,max1); return 0; }
这个程序前缀和处理错了,在一开始还没处理好s[i]在s[n+i]里就调用了,以至于最小值求错了。
ac程序
#include<cstdio> #include<iostream> using namespace std; int n; int a[9999]; int s[9999],f1[999][999]; int f2[999][999]; int main() { scanf("%d 4000 ",&n); for(int i=1;i<=n;i++) { scanf("%d",&a[i]); a[n+i]=a[i]; s[i]=s[i-1]+a[i]; } for(int i=1;i<=n;i++) s[i+n]=s[i+n-1]+a[i]; for(int i=1;i<=2*n;i++) for(int j=1;j<=2*n;j++) { f1[i][j]=99999999; f2[i][j]=-99999999; } for(int i=1;i<=2*n;i++) { f1[i][i]=0; f2[i][i]=0; } for(int p=1;p<=n-1;p++) for(int i=1;i<=2*n-p;i++) { int j=i+p; for(int k=i;k<=j-1;k++) { f1[i][j]=min(f1[i][j],f1[i][k]+f1[k+1][j]+s[j]-s[i-1]); f2[i][j]=max(f2[i][j],f2[i][k]+f2[k+1][j]+s[j]-s[i-1]); } } int min1=99999999,max1=-99999999; for(int i=1;i<=n;i++) min1=min(f1[i][n+i-1],min1); for(int i=1;i<=n;i++) max1=max(f2[i][n+i-1],max1); printf("%d\n%d",min1,max1); return 0; }
只需要把前缀和弄到后面就ac了。。。
相关文章推荐
- 【洛谷P1880】合并石子
- 洛谷 P1880 石子合并
- 【洛谷】P1880 石子合并
- DP 洛谷 P1880 [NOI1995]石子合并
- 【洛谷】P1880 石子合并
- 洛谷P1880 石子合并
- 洛谷P1880 石子合并
- 洛谷 P1880 [NOI1995]石子合并
- 洛谷 P1880 石子合并
- P1880 石子合并
- 洛谷 1880 石子合并 DP
- 【学术篇】一石三鸟的——洛谷2654——原核生物培养(石子合并果子)
- [动态规划] 洛谷P1063 能量项链 (石子合并)
- 【p1880】石子合并
- 动态规划——洛谷1880石子合并
- P1880 [NOI1995]石子合并
- p1880石子合并 题解
- 区间DP理解 (石子合并)
- P1880 石子合并
- P1880 石子合并