BZOJ 2037 区间DP
来源:互联网 发布:网络潮州歌曲大全100首 编辑:程序博客网 时间:2024/05/16 07:05
跟POJ 3042是一个类型的http://blog.csdn.net/qq_31785871/article/details/52954924
思路:
先排个序 (把初始位置也插进去)
f[i][j]表示从第i个到第j个之间的蛋都被收完了
f[i][j][0]表示在地点i f[i][j][1]表示在地点j
维护一个sumv数组 是v的前缀和
f[i][j][0]=max(f[i+1][j][0]-(node[i+1].x-node[i].x)*(sumv[n]-sumv[j]+sumv[i]),
f[i+1][j][1]-(node[j].x-node[i].x)*(sumv[n]-sumv[j]+sumv[i])),
f[i][j][1]=max(f[i][j-1][0]-(node[j].x-node[i].x)*(sumv[n]-sumv[j-1]+sumv[i-1]),
f[i][j-1][1]-(node[j].x-node[j-1].x)*(sumv[n]-sumv[j-1]+sumv[i-1]));
最后加上所有的y之和就好啦
注意把数组付上初值!!@某人
//By SiriusRen#include <cstdio>#include <algorithm>using namespace std;int n,x0,sumy,sumv[1005],f[1005][1005][2];struct Node{int x,y,v;}node[1005];bool cmp(Node a,Node b){return a.x<b.x;}int main(){ scanf("%d%d",&n,&x0); for(int i=1;i<=n;i++)scanf("%d",&node[i].x); for(int i=1;i<=n;i++)scanf("%d",&node[i].y),sumy+=node[i].y; for(int i=1;i<=n;i++)scanf("%d",&node[i].v); node[++n].x=x0; sort(node+1,node+1+n,cmp); for(int i=1;i<=n;i++){ if(node[i].x!=x0)f[i][i][0]=f[i][i][1]=0xcfffffff; sumv[i]=sumv[i-1]+node[i].v; } for(int i=n;i;i--) for(int j=i+1;j<=n;j++) f[i][j][0]=max(f[i+1][j][0]-(node[i+1].x-node[i].x)*(sumv[n]-sumv[j]+sumv[i]), f[i+1][j][1]-(node[j].x-node[i].x)*(sumv[n]-sumv[j]+sumv[i])), f[i][j][1]=max(f[i][j-1][0]-(node[j].x-node[i].x)*(sumv[n]-sumv[j-1]+sumv[i-1]), f[i][j-1][1]-(node[j].x-node[j-1].x)*(sumv[n]-sumv[j-1]+sumv[i-1])); printf("%.3lf\n",0.001*(max(f[1][n][0],f[1][n][1])+sumy));}
0 0
- BZOJ 2037 区间DP
- 区间DP BZOJ 1260
- bzoj 1996(区间dp)
- bzoj 2933(区间dp)
- bzoj 1070(区间dp)
- BZOJ 2037 Sue的小球(区间DP)
- BZOJ 1694 && 2037 【DP……算是区间?
- BZOJ 2933([Poi1999]地图-区间Dp)
- BZOJ 1090 [SCOI2003]字符串折叠 区间DP
- BZOJ 1068 [SCOI2007]压缩 区间DP
- BZOJ 1068: [SCOI2007]压缩 区间DP
- 【BZOJ】1260: [CQOI2007]涂色paint 区间dp
- 【bzoj 1090】[SCOI2003]字符串折叠 区间dp
- 【bzoj 1068】[SCOI2007]压缩 区间dp
- 【BZOJ 1068】【SCOI 2007】压缩 【区间DP】
- [BZOJ]1090: [SCOI2003]字符串折叠 区间DP
- [BZOJ]1996: [Hnoi2010]chorus 合唱队 区间DP
- BZOJ 1032: [JSOI2007]祖码Zuma 区间DP
- Python的几种实现
- Ubuntu 16.04 通过Firefox安装Flash插件
- [Linux C编程]多线程编程
- CODE[VS] 1403 新三国争霸
- 自定义控件-侧滑菜单
- BZOJ 2037 区间DP
- 总结
- Linux系统调用--semctl函数详解
- HTML 12 图像
- c++数据类型,关键字,优先级
- linux设置环境变量
- 博客关闭公告
- LeetCode No.264 Ugly Number II
- 【数据结构】利用堆建立哈夫曼树