2037: [Sdoi2008]Sue的小球
2037: [Sdoi2008]Sue的小球
题解
代码
- #include<cstdio>
- #include<algorithm>
- #include<cstring>
- #include<cmath>
- #include<iostream>
- #include<cctype>
- using namespace std;
- const int N = ;
- struct Node{
- int x,y,v;
- bool operator < (const Node &a) const {
- return x < a.x;
- }
- }d[N];
- int dp[N][N][],sum[N];
- inline int read() {
- int x = ,f = ;char ch=getchar();
- for (; !isdigit(ch); ch=getchar()) if(ch=='-')f=-;
- for (; isdigit(ch); ch=getchar()) x=x*+ch-'';
- return x*f;
- }
- int main() {
- int n = read(), x0 = read();
- for (int i=; i<=n; ++i) d[i].x = read();
- for (int i=; i<=n; ++i) d[i].y = read();
- for (int i=; i<=n; ++i) d[i].v = read();
- sort(d+,d+n+);
- for (int i=; i<=n; ++i) sum[i] = sum[i-] + d[i].v; // 对下降速度求前缀和
- for (int i=; i<=n; ++i)
- dp[i][i][] = dp[i][i][] = d[i].y - abs(x0-d[i].x)*sum[n]; //表示已经收集了[i,i]这个区间
- for (int k=; k<=n; ++k) {
- for (int i=; i+k-<=n; ++i) {
- int j = i + k - ;
- dp[i][j][] = max(dp[i+][j][] + d[i].y - (sum[n] - sum[j] + sum[i]) * (d[i+].x - d[i].x),
- dp[i+][j][] + d[i].y - (sum[n] - sum[j] + sum[i]) * (d[j].x - d[i].x));
- dp[i][j][] = max(dp[i][j-][] + d[j].y - (sum[n] - sum[j-] + sum[i-]) * (d[j].x - d[i].x),
- dp[i][j-][] + d[j].y - (sum[n] - sum[j-] + sum[i-]) * (d[j].x - d[j-].x));
- }
- }
- double ans = 1.0*(max(dp[][n][],dp[][n][]))/1000.0;
- printf("%.3lf",ans);
- return ;
- }
2037: [Sdoi2008]Sue的小球的更多相关文章
- bzoj 2037: [Sdoi2008]Sue的小球——dp
Description Sue和Sandy最近迷上了一个电脑游戏,这个游戏的故事发在美丽神秘并且充满刺激的大海上,Sue有一支轻便小巧的小船.然而,Sue的目标并不是当一个海盗,而是要收集空中漂浮的彩 ...
- bzoj 2037: [Sdoi2008]Sue的小球
#include<cstdio> #include<iostream> #include<algorithm> using namespace std; struc ...
- 【BZOJ2037】[Sdoi2008]Sue的小球 区间DP+费用提前
[BZOJ2037][Sdoi2008]Sue的小球 Description Sue和Sandy最近迷上了一个电脑游戏,这个游戏的故事发在美丽神秘并且充满刺激的大海上,Sue有一支轻便小巧的小船.然而 ...
- BZOJ2037: [Sdoi2008]Sue的小球
Description Sue 和Sandy最近迷上了一个电脑游戏,这个游戏的故事发在美丽神秘并且充满刺激的大海上,Sue有一支轻便小巧的小船.然而,Sue的目标并不是当一个海 盗,而是要收集空中漂浮 ...
- [SDOI2008]Sue的小球
题目描述 Sue和Sandy最近迷上了一个电脑游戏,这个游戏的故事发在美丽神秘并且充满刺激的大海上,Sue有一支轻便小巧的小船.然而,Sue的目标并不是当一个海盗,而是要收集空中漂浮的彩蛋,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 ...
- Luogu[SDOI2008]Sue的小球
题目描述 Sue和Sandy最近迷上了一个电脑游戏,这个游戏的故事发在美丽神秘并且充满刺激的大海上,Sue有一支轻便小巧的小船.然而,Sue的目标并不是当一个海盗,而是要收集空中漂浮的彩蛋,Sue有一 ...
- 【简●解】[SDOI2008] Sue的小球
[简●解][SDOI2008] Sue的小球 计划着刷\(DP\)题结果碰到了这样一道论文题,幸好不是太难. [题目大意] 口水话有点多,所以就直接放链接.传送门 [分析] 看到题首先联想到了曾经做过 ...
随机推荐
- selenium 移动端测试
selenium 可以进行移动测试的.Anroid ,IOS .进行移动端测试,需要相应的SDK ,apk.其中anriod 是selenium 支持有2中选择,remote server 和 tes ...
- js关于cookie的各种方法
//删除cookiedelCookie("GroupName");//s20是代表20秒//h是指小时,如12小时则是:h12//d是天数,30天则:d30setCookie(&q ...
- ubuntu terminal copy paste
copy: ctrl + insert paste: shift + insert
- Socket的基本使用步骤
Socket的基本使用步骤 一.使用Socket,首先需要导入这几个系统头文件 #import <sys/socket.h> #import <netinet/in.h> #i ...
- Jmeter入门8 连接microsoft sql server数据库取数据
本文以Jmeter 连接microsoft sql server为例. 1 从微软官网下载Microsoft SQL Server JDBC Driver 地址:http://www.microsof ...
- java的sleep方法详解
java的sleep方法详解: sleep并不是永久占有CPU,没有那个线程能永久占用CPU.它是指在自己时间片内睡眠,而不是急着交出CPU.yield()就是自己愿意立即交出时间片.因此一个线程sl ...
- robotframework实战三--自定义关键字
在rf的实战1中,我的登录获取验证码就使用了自定义关键字,具体怎么做的,如下 1.新建文件夹 新建一个文件夹,我的MyLibrary,并且存放在site-packages下 2.编写代码 在pytho ...
- 【LOJ6045】「雅礼集训 2017 Day8」价(网络流)
点此看题面 大致题意: 有\(n\)种药,每种药有一个权值,且使用了若干种药材.让你选择若干种药,使得药的数量与所使用的药材并集大小相等,求最小权值总和. 网络流 \(hl666\):这种数据范围,一 ...
- 1993: C语言实验——最值
1993: C语言实验——最值 Time Limit: 1 Sec Memory Limit: 64 MBSubmit: 1541 Solved: 727[Submit][Status][Web ...
- 复式记账中"借"与"贷"的理解
财务常识中,复式记账法应用极广,公司采用的是它的借贷记账法.因此,深刻的理解"借"与"贷"的含义极其重要. 一切从历史说起. 起源: Credit 英文含义 ...