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相关推荐

  1. 【BZOJ3963】[WF2011]MachineWorks cdq分治+斜率优化

    [BZOJ3963][WF2011]MachineWorks Description 你是任意性复杂机器公司(Arbitrarily Complex Machines, ACM)的经理,公司使用更加先 ...

  2. [WF2011] MachineWorks(李超树优化dp)

    [WF2011]MachineWorks problem BZOJ3963 solution 来得比较快的是,直接设 dpi,j:dp_{i,j}:dpi,j​: 考虑第 jjj 天换购 iii 机器 ...

  3. BZOJ.1558.[JSOI2009]等差数列(线段树 差分)

    BZOJ 洛谷 首先可以把原序列\(A_i\)转化成差分序列\(B_i\)去做. 这样对于区间加一个等差数列\((l,r,a_0,d)\),就可以转化为\(B_{l-1}\)+=\(a_0\),\(B ...

  4. S-T平面图中利用最短路求最小割(BZOJ 1001)

    BZOJ 1001: [BeiJing2006]狼抓兔子 最小割 题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1001 现在小朋友们最喜欢 ...

  5. BZOJ 1124: [POI2008]枪战Maf(构造 + 贪心)

    题意 有 \(n\) 个人,每个人手里有一把手枪.一开始所有人都选定一个人瞄准(有可能瞄准自己).然后他们按某个顺序开枪,且任意时刻只有一个人开枪. 因此,对于不同的开枪顺序,最后死的人也不同. 问最 ...

  6. BZOJ 2957楼房重建

    传送门 线段树 //Twenty #include<cstdio> #include<cstdlib> #include<iostream> #include< ...

  7. BZOJ.5249.[九省联考2018]iiidx(贪心 线段树)

    BZOJ LOJ 洛谷 \(d_i\)不同就不用说了,建出树来\(DFS\)一遍. 对于\(d_i\)不同的情况: Solution 1: xxy tql! 考虑如何把这些数依次填到树里. 首先对于已 ...

  8. bzoj 4871: [Shoi2017]摧毁“树状图”

    4871: [Shoi2017]摧毁"树状图" Time Limit: 25 Sec  Memory Limit: 512 MB Submit: 53  Solved: 9 [Su ...

  9. BZOJ 1592. Making the Grade(思维,数据结构优化DP,以及三个拓展问题)[Usaco2008 Feb]【BZOJ计划】

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 BZOJ简单题合集x 目录 BZOJ 1592. Making the Grade 拓展问题一 拓展问 ...

最新文章

  1. 「操作系统」《自己动手写操作系统》1.1前期准备工作
  2. Activemq 安全机制以及稳定性研究
  3. Java实现话术词槽匹配_知识图谱与KBQA——槽填充
  4. 怎样让电脑速度变快_双11的笔记本电脑怎么买?哪些轻薄款的最好?
  5. leetcode python 011
  6. Linux入门之进程管理(4)之进程与文件
  7. linux贪吃蛇c程序,Linux环境下C语言实现贪吃蛇游戏
  8. Git 工作区恢复暂存区操作总览
  9. 传感器和单片机主板之间远距离通讯应该有哪些保障处理措施
  10. MFC的非模态对话框资源管理
  11. hermite插值matlab代码,hermite插值以及两种MATLAB程序
  12. (2020/11/9)学习记录
  13. Webots水下机器人仿真
  14. bigworld游戏服务器架构参考
  15. python练习, 打鱼晒网问题
  16. 中山大学自考网校招生简章
  17. 射频流盘与射频孪生——流盘技术应用(1)
  18. 创业者,守成者,陵夷者,中兴者,乱亡者。
  19. Linux下Docker及Docker-compose的安装及项目部署实战
  20. nokia 7 Android8,全面屏+原生安卓8.0:NOKIA 诺基亚 发布 Nokia 7 Plus 手机

热门文章

  1. NSString字体大小计算方法
  2. iOS开发-策略模式
  3. 网管常犯的十个错误-转载
  4. QTP的那些事--web测试脚本不能录制的解决方法(个人整理未完待续)
  5. Python:机器学习库 sklearn
  6. jsp+Servlet+JavaBean+JDBC+MySQL项目增删改查
  7. 【381天】我爱刷题系列140(2018.02.21)
  8. 并查集-----好忧伤的并查集
  9. Linux下Redis-3.0.7版本的安装以及Redis主备的部署(一)
  10. hibernate 双向n-n