码迷,mamicode.com
首页 > 其他好文 > 详细

斜率优化选做

时间:2020-05-05 11:02:03      阅读:61      评论:0      收藏:0      [点我收藏+]

标签:span   mat   api   div   play   部分   就是   class   sum   

APIO2010 特别行动队

\[\frac{f_j+a\times sum_j^2+b\times sum_j-f_k-a\times sum_k^2-b\times sum_k}{sum_j-sum_k} >2asum_x \]

转移点 \(j,k\) ,当前点 \(x\) ,右侧是单调降的

如果 \(j>k\) 且上式成立,则 \(j\)\(k\)

元素关系单调降的单调队列(即一个上凸壳)

弹栈:

如果队首的两个点的斜率大于 \(2asum_x\),就弹

队尾就是满足单调降就好了

ZJOI2007 仓库建设

\(f_x=(\min\limits^{x-1}_ {i=1} f_i-s1_i\times dis_y+s2_i)+s1_y\times dis_y-s2_y\)

其中:

\[s1_x=\sum ^{x}_ {i=1}p_i\ \ \ \ s2_x=\sum_{i=1}^x p_i\times dis_i \]

如果 \(i<j\)

\[\frac{f_i-f_j+s2_i-s2_j}{s1_i-s1_j}>dis_x \]

\(i\) 点则不优

右边是单调增的,所以是个下凸壳

[USACO08MAR]Land Acquisition G

首先用排序把矩形留下有用的部分

然后元素是满足 \(x\) 单调减,\(y\) 单调增

然后就可以斜率优化了

\[\frac{f_j-f_k}{x_{k+1}-x_{j+1}}>y_i \]

右面是单调增的,维护下凸壳即可

斜率优化选做

标签:span   mat   api   div   play   部分   就是   class   sum   

原文地址:https://www.cnblogs.com/yspm/p/12829627.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!