BZOJ 2037: [Sdoi2008]Sue的小球(DP)
2037: [Sdoi2008]Sue的小球
Time Limit: 10 Sec Memory Limit: 64 MB
Submit: 530 Solved: 282
[Submit][Status][Discuss]
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
#include <iostream>
#include <cstring>
#include <cstdlib>
#include <cstdio>
#include <cmath>
#include <queue>
#include <stack>
#include <vector>
#include <algorithm>
#define FOR(i, x, y) for(int i=x;i<=y;i++)
#define LL long long
using namespace std;
const int MAXN = 1000 + 10;
struct Point
{double x, y, v;bool operator < (const Point& rhs)const{return x < rhs.x;}
}p[MAXN];
int n;
double x0, dp[MAXN][MAXN][2], sum[MAXN];;
int main()
{scanf("%d%lf", &n, &x0);FOR(i, 1, n) scanf("%lf", &p[i].x);FOR(i, 1, n) scanf("%lf", &p[i].y);FOR(i, 1, n) scanf("%lf", &p[i].v);sort(p + 1, p + 1 + n);for(int i=1;i<=n;i++) sum[i] = sum[i-1] + p[i].v;FOR(i, 1, n) dp[i][i][0] = dp[i][i][1] = p[i].y - sum[n] * abs(p[i].x - x0);for(int len=2;len<=n;len++){for(int i=1;i<=n-len+1;i++){int j = i + len - 1;dp[i][j][0] = max(dp[i+1][j][0] + p[i].y - abs(p[i].x - p[i+1].x) * (sum[i] + sum[n] - sum[j]),dp[i+1][j][1] + p[i].y - abs(p[i].x - p[j].x) * (sum[i] + sum[n] - sum[j]));dp[i][j][1] = max(dp[i][j-1][0] + p[j].y - abs(p[j].x - p[i].x) * (sum[i-1] + sum[n] - sum[j-1]),dp[i][j-1][1] + p[j].y - abs(p[j].x - p[j-1].x) * (sum[i-1] + sum[n] - sum[j-1]));}}printf("%.3lf\n", (1.0 * max(dp[1][n][0], dp[1][n][1]) )/ 1000.0);return 0;
}
BZOJ 2037: [Sdoi2008]Sue的小球(DP)相关推荐
- [SDOI2008]SUE的小球
[SDOI2008]SUE的小球 文章目录 题目描述 题解: 代码: 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Form ...
- BZOJ 1867 [Noi1999]钉子和小球 DP
想状态和钉子的位置如何匹配想了半天...后来发现不是一样的吗$qwq$ 思路:当然是$DP$啦 提交:>5次(以为无故$RE$,实则是先乘后除爆了$long\space long$) 题解: 若 ...
- Bzoj2037: [Sdoi2008]Sue的小球
题面 传送门 Sol 就相当于从\(x_0\)开始左右横走,显然可以设\(f[0/1][i][j]\)表示左到\(i\)右到\(j\),当前在左/右的代价 但是不好记转移代价,因为不知道时间 那么可以 ...
- BZOJ 2037 Sue的小球
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=2037 题意:二维平面上有一些彩蛋(x,y),每个彩蛋会下落.当移动到彩蛋下方时会获得彩蛋 ...
- BZOJ.3227.[SDOI2008]红黑树tree(树形DP 思路)
BZOJ orz MilkyWay天天做sxt! 首先可以树形DP:\(f[i][j][0/1]\)表示\(i\)个点的子树中,黑高度为\(j\),根节点为红/黑节点的最小红节点数(最大同理). 转移 ...
- BZOJ 2131 免费的馅饼(DP,二维偏序问题 / 旋转坐标轴转化问题)【BZOJ 修复工程】
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 题目链接 https://hydro.ac/d/bzoj/p/2131 是 hydro 的 BZOJ ...
- BZOJ.1109.[POI2007]堆积木Klo(DP LIS)
BZOJ 二维\(DP\)显然.尝试换成一维,令\(f[i]\)表示,强制把\(i\)放到\(a_i\)位置去,现在能匹配的最多数目. 那么\(f[i]=\max\{f[j]\}+1\),其中\(j& ...
- BZOJ.1032.[JSOI2007]祖码(区间DP)
题目链接 BZOJ 洛谷 AC代码: 区间DP,f[i][j]表示消掉i~j需要的最少珠子数. 先把相邻的相同颜色的珠子合并起来. 枚举方法一样,处理一下端点可以碰撞消除的情况就行. 当然合并会出现问 ...
- 【BZOJ - 4318】OSU!(概率dp,数学期望,期望的线性性)
题干: osu 是一款群众喜闻乐见的休闲软件. 我们可以把osu的规则简化与改编成以下的样子: 一共有n次操作,每次操作只有成功与失败之分,成功对应1,失败对应0,n次操作对应为1个长度为n的01串. ...
- BZOJ 1003[ZJOI2006]物流运输(SPFA+DP)
Problem 1003. -- [ZJOI2006]物流运输 1003: [ZJOI2006]物流运输 Time Limit: 10 Sec Memory Limit: 162 MB Submit ...
最新文章
- 小程序clearinterval无效解决
- Eclipse中导入第三方源码的问题和备用解决方案
- python使用pip安装本地包-Python之pip使用详解|附第三方库安装总结
- Atom中安装atom-terminal插件来打开命令行运行vue项目
- 周五话运营 | 做个了解用户的精细化运营喵
- suse linux10 关闭防火墙,Suse10 关闭防火墙
- 秒懂 QPS、TPS、PV、UV、GMV、IP、RPS!
- python指针引用的区别_C++基础:指针和引用的区别
- 【牛客 - 1080C】tokitsukaze and Soldier(思维,偏序问题)
- Unity AssetBundle 爬坑手记
- linux笔记:shell编程-正则表达式
- SAI:Switch Abstraction Interface
- Unity3d学习之路-初识GameSparks多人游戏插件
- VxWorks Fuzzing 之道:VxWorks 工控实时操作系统漏洞挖掘调试与利用揭秘
- python生成词云图、特殊图形_Python模块---Wordcloud生成词云图
- 什么是漏极开路【转】
- Opencv求取连通区域重心
- windows操作系统杂谈
- 自动动态调整广告出价OCPC
- nc服务器修改过ip地址,nc服务器修改过ip地址