BZOJ2037: [Sdoi2008]Sue的小球
Description
Input
Output
Sample Input
-4 -2 2
22 30 26
1 9 8
Sample Output
数据范围:
N < = 1000,对于100%的数据。 -10^4 < = xi,yi,vi < = 10^4
HINT
Source
用f1[i][j]表示i到j这一段已经被消除且现在在i
用f2[i][j]表示i到j这一段已经被消除且现在在j
但是对f1[i][j]递推到其他状态时,我的决策影响的不仅仅是这一颗球,同时其他未被收集的球也在下坠,所以这道题在做决策时要顺便减去除被消除小球以外的速度和乘
移动的距离。
递推方程
f1[i][j]=max(f1[i+1][j]+a[i].y-(a[i+1].x-a[i].x)*(a[n].v-a[j].v+a[i].v),f2[i+1][j]+a[i].y-(a[j].x-a[i].x)*(a[n].v-a[j].v+a[i].v));
f2[i][j]=max(f2[i][j-1]+a[j].y-(a[j].x-a[j-1].x)*(a[n].v-a[j-1].v+a[i-1].v),f1[i][j-1]+a[j].y-(a[j].x-a[i].x)*(a[n].v-a[j-1].v+a[i-1].v));
对于a[i].v我进行了前缀和处理。
#include<cstdio>
#include<algorithm>
using namespace std;
struct A
{
int x,y,v;
}a[];
int f1[][],f2[][];
bool cmp(const A &t1,const A &t2)
{
return t1.x<t2.x;
}
int main()
{
int n,x0;
scanf("%d%d",&n,&x0);
for(int i=;i<=n;i++) scanf("%d",&a[i].x);
for(int i=;i<=n;i++) scanf("%d",&a[i].y);
for(int i=;i<=n;i++) scanf("%d",&a[i].v);
sort(a+,a+n+,cmp);
for(int i=;i<=n;i++) a[i].v+=a[i-].v;
for(int i=;i<=n;i++)
f1[i][i]=f2[i][i]=(x0<=a[i].x?x0-a[i].x:a[i].x-x0)*a[n].v+a[i].y;
for(int l=;l<=n;l++)
for(int i=;i+l-<=n;i++)
{
int j=i+l-;
f1[i][j]=max(f1[i+][j]+a[i].y-(a[i+].x-a[i].x)*(a[n].v-a[j].v+a[i].v),f2[i+][j]+a[i].y-(a[j].x-a[i].x)*(a[n].v-a[j].v+a[i].v));
f2[i][j]=max(f2[i][j-]+a[j].y-(a[j].x-a[j-].x)*(a[n].v-a[j-].v+a[i-].v),f1[i][j-]+a[j].y-(a[j].x-a[i].x)*(a[n].v-a[j-].v+a[i-].v));
}
printf("%.3lf",max(f1[][n],f2[][n])/1000.0);
return ;
}
BZOJ2037: [Sdoi2008]Sue的小球的更多相关文章
- [luogu2446][bzoj2037][SDOI2008]Sue的小球【区间DP】
分析 简单区间DP, 定义状态f[i][j][0/1]为取完i-j的小球最后取i/j上的小球所能获得的最大价值. 排序转移. ac代码 #include <bits/stdc++.h> # ...
- BZOJ2037: [Sdoi2008]Sue的小球(区间DP)
Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 869 Solved: 483[Submit][Status][Discuss] Description ...
- 【BZOJ2037】[Sdoi2008]Sue的小球 区间DP+费用提前
[BZOJ2037][Sdoi2008]Sue的小球 Description Sue和Sandy最近迷上了一个电脑游戏,这个游戏的故事发在美丽神秘并且充满刺激的大海上,Sue有一支轻便小巧的小船.然而 ...
- 【BZOJ2037】Sue的小球(动态规划)
[BZOJ2037]Sue的小球(动态规划) 题面 BZOJ 题解 莫名想到这道题目 很明显是一样的 设\(f[i][j][0/1]\)表示已经接到了\(i-j\)这一段的小球 当前在\(i\)或者在 ...
- 2037: [Sdoi2008]Sue的小球
2037: [Sdoi2008]Sue的小球 链接 题解 论文 代码 #include<cstdio> #include<algorithm> #include<cstr ...
- [SDOI2008]Sue的小球
题目描述 Sue和Sandy最近迷上了一个电脑游戏,这个游戏的故事发在美丽神秘并且充满刺激的大海上,Sue有一支轻便小巧的小船.然而,Sue的目标并不是当一个海盗,而是要收集空中漂浮的彩蛋,Sue有一 ...
- bzoj 2037: [Sdoi2008]Sue的小球——dp
Description Sue和Sandy最近迷上了一个电脑游戏,这个游戏的故事发在美丽神秘并且充满刺激的大海上,Sue有一支轻便小巧的小船.然而,Sue的目标并不是当一个海盗,而是要收集空中漂浮的彩 ...
- Luogu[SDOI2008]Sue的小球
题目描述 Sue和Sandy最近迷上了一个电脑游戏,这个游戏的故事发在美丽神秘并且充满刺激的大海上,Sue有一支轻便小巧的小船.然而,Sue的目标并不是当一个海盗,而是要收集空中漂浮的彩蛋,Sue有一 ...
- bzoj 2037: [Sdoi2008]Sue的小球
#include<cstdio> #include<iostream> #include<algorithm> using namespace std; struc ...
随机推荐
- android studio 各种问题
1.dexDebug ExecException finished with non-zero exit value 2 全bug日志如下: (Error:Execution failed for t ...
- day3 字典,集合,文件
一.深浅copy 浅copy只copy第一层,不copy第二层.copy后,第一层指向不同内存地址.第二层指向相同的内存地址. 导入copy模块,deepcopy深copy.deepcopy后,均指向 ...
- mysql解决Value ‘0000-00-00 00:00:00’ can not be represented as java.sql.Timestamp
同步发布:http://www.yuanrengu.com/index.php/mysqlsolvetimestamp.html 在使用mysql时,如果数据库中的字段类型是timestamp,默认为 ...
- (Collection)347. Top K Frequent Elements
Given a non-empty array of integers, return the k most frequent elements. For example,Given [1,1,1,2 ...
- List subList(startIndex, endIndex);
1. subList(startIndex, endIndex);//startIndex开始,到endIndex结束,不包含endIndex! 2. 集合排序可以实现 java.util.Compa ...
- webuploader 上传文件参数设置
webUploader 是款很好用的优秀的开源上传组件,由百度公司开发,详细的介绍可参见webUploader 的官方文档: 最近在使用webUploader时,需要添加额外的参数,并在后台获取,参数 ...
- HTML5 File详解
input file控件限制上传文件类型 Html5 FileReader 对文件进行Base64编码 FileReader.readAsDataURL
- 调用百度地图API出现 error inflating class com.baidu.mapapi.map.mapview
问题如下 本来以为解决了,但后来重新运行了一下,又坏了,然后改成原来的样子,又好了. 结果就是:对不住了各位看官,没找到解决办法,不过经测试有个地方,可能在程序运行时,出现error inflatin ...
- StrangeIoc框架学习----在项目中实战
最近,因为公司的项目一直在研究StrangeIoc框架,小有所得,略作记录. StrangeIoc是一款基于MVCS的一种框架,是对MVC思想的扩展,是专门针对unity开发的一款框架,非常好用. 一 ...
- java守护线程的理解
package daemonThread; /*setDaemon(true)方法将线程设置为守护线程,线程的Daemon默认值为false * 只要当前JVM实例中存在任何一个非守护线程没有结束,守 ...