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 ...
随机推荐
- delphi cmd
今天看到有人在问用代码执行CMD命令的问题,就总结一下用法,也算做个备忘. Delphi中,执行命令或者运行一个程序有2个函数,一个是winexec,一个是shellexecute.这两个大家应该都见 ...
- linux pxe+dhcp+nfs+tftp
yum -y install vsftpd dhcp xinetd tftp-server syslinux(安装"syslinux"才有pxelinux.0) tftp 服务(v ...
- OC中copy的使用
@property内存管理策略的选择 1.非ARC 1> copy : 只用于NSString\block: 2> retain : 除NSString\block以外的OC对象: 3&g ...
- spark-shell和scala错误
运行spark-shell 或者scala命令,出现以下错误: Welcome to Scala version 2.10.6 (Java HotSpot(TM) 64-Bit Server VM, ...
- FPGA低级建模---按键去抖动
FPGA低级建模,原则上一个模块一个功能,如按键去抖动建模中,有两个模块. 1.detect_module 这个是按键检测模块,主要检测按键的高低电平变化,现在按键是按下还是释放. 2.delay_m ...
- prototype.js简介
prototype.js简介 2007-11-21 14:22 prototype.js是一个很强大的Javascript函数库,它可以让你很轻松的使用一些特效,实现AJAX的功能.虽然prototy ...
- 初识Lucene.net
最近想提高下自己的能力,也是由于自己的项目中需要用到Lucene,所以开始接触这门富有挑战又充满新奇的技术.. 刚刚开始,只是写了个小小的demo,用了用lucene,确实很好 创建索引 Data ...
- vs快捷键汇总
1.相关查找快捷键 Ctrl+F: 查找 Ctrl+Shift+F: 在文件中查找 F3: 查找下一个 Shift+F3: 查找上一个 Ctrl+H: 替换 Ctrl+Shift+H: 在文件中替换 ...
- 后台使用Spring MVC 4.15 版本 通过 ajaxFileUpload plugin插件上传文件相应时引起的一个小问题,Chrome、Firefox中出现SyntaxError:unexpected token <
html: 使用ajaxFileUpload插件做文件上传时,后台返回json格式的数据,js代码如下: 接下来,把结果错误信息打印出来: 先在网上找了下解决办法方案,stackoverflow上有说 ...
- 登陆判读,并跳转到指定页面(window.location.href='http://localhost/index.html')
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 functio ...