斜率优化
pbihao
这个作者很懒,什么都没留下…
展开
-
【BZOJ 3636】[Usaco2008 Mar]土地购买 斜率优化dp
其实还是蛮好想得,只是。。。脑残把x写成nod然后debug半天最后还是看题解才找出来的qaq 我们按照长和宽作为一二关键字排序,然后可以很明显的发现如果nod[i-1].b f[i]=min{f[j]+a[i]*b[j+1]}随随便便化简一下就会发下是裸的斜率dp了 [cpp] view plain copy #include #include原创 2017-01-03 10:18:13 · 480 阅读 · 0 评论 -
【BOOJ 3437】小P的牧场 斜率优化dp
有点无语,这道题我维护的差分是从后往前的,结果再推斜率的时候忘了分母是负数,乘过去后不等式变方向,我擦,坑了我一个半小时。。。。。啊啊啊啊啊 思路的话,维护一个差分s[i]=∑b[i]*i(i f[i]=min{f[j]+s[j+1]-s[i]-(sum[j+1]-sum[i])*(n-i+1)} 化简的时候注意变方向 (f[k]+s[k+1]-s[j]-s[j-1])/(sum[k+原创 2017-01-03 10:19:25 · 240 阅读 · 0 评论 -
【BZOJ 1492】[NOI2007]货币兑换Cash cdq分治+斜率dp
每一天的-a[i]/b[i]作为绿色的斜率k值,等价于求最右上的那条绿线与红线交点。维护一个凸包,将绿线一开始以k大小排序,这样一来就都具有单调性了,就可以使用斜率优化dp了 #include #include #include #include #define maxn 100020 #define eps 1e-9 #define LL long long #include using n原创 2016-12-12 16:24:20 · 311 阅读 · 0 评论 -
【BZOJ 4518】[Sdoi2016]征途 斜率优化dp
化简以后就是裸的斜率优化dp了,如果不清楚斜率优化的话推荐去写玩具装箱,倒不是简单一些,只是题目老一点,有很多关于斜率优化的介绍 #include #include #include #define LL long long using namespace std; LL f[3020][3020], sum[3020]; int q[6020],n,m; double Q(int a,in原创 2016-12-29 17:26:23 · 242 阅读 · 0 评论 -
【BZOJ 3672】[Noi2014]购票 树分治+斜率优化
好了,回来填这个坑,闲来无事就尽力说清楚一些吧,code较难的部分我加了注释。 首先让我们考虑如果题目要求的不是一个树形结构,而是线性的我们怎么来处理。(其实就变成了一道水水的斜率优化dp),至少这个方程还是很好化简的,假设kp[i]的斜率方程式,但是我们会吃惊的发现,不等式左边x是单调的,但是不等式的右边斜率并不单调(p值给定,p[k]可以比p[j]大,也可以小),也就是说,在维护单调队列的时原创 2017-01-06 21:01:01 · 208 阅读 · 0 评论