BZOJ - 3963: [WF2011]MachineWorks
3963: [WF2011]MachineWorks
显然中途卖掉是不合算的,咱只考虑在有机器出售的那一天换一个机器的情况。
记$dp_i$为换成第$i$个机器时拥有的钱。为了方便处理,咱在$n+1$天放一个假机器。
$dp_i=\max\{dp_j+R_j+(D_i-D_j-1)G_j\}-P_i, \; dp_j + (D_i-D_j-1)G_j + R_j \geqslant P_i$
1.若对于$i$,$j$比$k$优。不妨设$G_j>G_k$,
$\frac{(dp_j+R_j+D_jG_j-G_j)-(dp_k+R_k+D_kG_k-G_k)}{G_j-G_k}>D_i$
2.如果$j$是$i$的一个决策,(略去P_i(话说可以这样吗?))
$dp_i=dp_j+R_j+D_jG_j-D_iG_j-G_j$
$dp_j+R_j+D_jG_j-G_j=D_iG_j+dp_i$
就成了一个$y=kx+b$的形式。其中$y$为$dp_j+R_j+D_jG_j-G_j$,$k$为$D_i$,$x$为$G_j$,$b$为$dp_i$。看起来是不是跟上面的很像。
所以我们要维护一个斜率单调递增的凸壳。
先把机器按照出售的天$D_i$排序。又发现$G_i$不单调,所以我们就用cdq分治来弄$G_i$。
分治的时候,咱想让凸壳里的每一个点都满足$dp_j+(D_i-D_j-1)G_j+R_j \geqslant P_i$,然后咱就不会了。
http://blog.csdn.net/clover_hxy/article/details/66475369
看看题解发现是咱的$dp$方程设计的${\color{Red} {naive}}$了。
记$dp_i$为$D_i$天卖掉机器的最大钱数。
$dp_i=\max\{dp_{i-1}, dp_j+(D_i-D_j+1)G_j-P_j+R_j(dp_j \geqslant P_j)\}$
1.若对于$i$,$j$比$k$优,
$\frac{(dp_j+R_j-P_j-D_jG_j-G_j)-(dp_k+R_k-P_k-D_kG_k-G_k)}{G_j-G_k}>-D_i(G_j>G_k)$
2.如果$j$是$i$的一个决策,
$dp_j+R_j-P_j-D_jG_j-G_j=-D_iG_j+dp_i$
跟上面$1$对应$y$是$dp_j+R_j-P_j-D_jG_j-G_j$,$k$是$-D_i$,$x$是$G_j$,$b$是$dp_i$。
这样就可以优化$dp$啦。
现在外面按$D_i$排序,分治时让左半边按$x_j$,即$G_j$排序,更新右半边的。
好气啊,居然是精度的问题。。。。我服了。。。
转载于:https://www.cnblogs.com/p0ny/p/8258754.html
BZOJ - 3963: [WF2011]MachineWorks相关推荐
- 【BZOJ3963】[WF2011]MachineWorks cdq分治+斜率优化
[BZOJ3963][WF2011]MachineWorks Description 你是任意性复杂机器公司(Arbitrarily Complex Machines, ACM)的经理,公司使用更加先 ...
- [WF2011] MachineWorks(李超树优化dp)
[WF2011]MachineWorks problem BZOJ3963 solution 来得比较快的是,直接设 dpi,j:dp_{i,j}:dpi,j: 考虑第 jjj 天换购 iii 机器 ...
- BZOJ.1558.[JSOI2009]等差数列(线段树 差分)
BZOJ 洛谷 首先可以把原序列\(A_i\)转化成差分序列\(B_i\)去做. 这样对于区间加一个等差数列\((l,r,a_0,d)\),就可以转化为\(B_{l-1}\)+=\(a_0\),\(B ...
- S-T平面图中利用最短路求最小割(BZOJ 1001)
BZOJ 1001: [BeiJing2006]狼抓兔子 最小割 题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1001 现在小朋友们最喜欢 ...
- BZOJ 1124: [POI2008]枪战Maf(构造 + 贪心)
题意 有 \(n\) 个人,每个人手里有一把手枪.一开始所有人都选定一个人瞄准(有可能瞄准自己).然后他们按某个顺序开枪,且任意时刻只有一个人开枪. 因此,对于不同的开枪顺序,最后死的人也不同. 问最 ...
- BZOJ 2957楼房重建
传送门 线段树 //Twenty #include<cstdio> #include<cstdlib> #include<iostream> #include< ...
- BZOJ.5249.[九省联考2018]iiidx(贪心 线段树)
BZOJ LOJ 洛谷 \(d_i\)不同就不用说了,建出树来\(DFS\)一遍. 对于\(d_i\)不同的情况: Solution 1: xxy tql! 考虑如何把这些数依次填到树里. 首先对于已 ...
- bzoj 4871: [Shoi2017]摧毁“树状图”
4871: [Shoi2017]摧毁"树状图" Time Limit: 25 Sec Memory Limit: 512 MB Submit: 53 Solved: 9 [Su ...
- BZOJ 1592. Making the Grade(思维,数据结构优化DP,以及三个拓展问题)[Usaco2008 Feb]【BZOJ计划】
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 BZOJ简单题合集x 目录 BZOJ 1592. Making the Grade 拓展问题一 拓展问 ...
最新文章
- 「操作系统」《自己动手写操作系统》1.1前期准备工作
- Activemq 安全机制以及稳定性研究
- Java实现话术词槽匹配_知识图谱与KBQA——槽填充
- 怎样让电脑速度变快_双11的笔记本电脑怎么买?哪些轻薄款的最好?
- leetcode python 011
- Linux入门之进程管理(4)之进程与文件
- linux贪吃蛇c程序,Linux环境下C语言实现贪吃蛇游戏
- Git 工作区恢复暂存区操作总览
- 传感器和单片机主板之间远距离通讯应该有哪些保障处理措施
- MFC的非模态对话框资源管理
- hermite插值matlab代码,hermite插值以及两种MATLAB程序
- (2020/11/9)学习记录
- Webots水下机器人仿真
- bigworld游戏服务器架构参考
- python练习, 打鱼晒网问题
- 中山大学自考网校招生简章
- 射频流盘与射频孪生——流盘技术应用(1)
- 创业者,守成者,陵夷者,中兴者,乱亡者。
- Linux下Docker及Docker-compose的安装及项目部署实战
- nokia 7 Android8,全面屏+原生安卓8.0:NOKIA 诺基亚 发布 Nokia 7 Plus 手机