LOJ2074/2157 JSOI2016 灯塔/POI2011 Lightning Conductor 决策单调性DP

传送门


我们相当于要求出\(f_i = \max\limits_{j=1}^{n} (a_j + \sqrt{|i-j|})\)。这个绝对值太烦人了,考虑对于\(i>j\)\(i<j\)分开做。

\(i>j\)时,\(f_i = \max\limits_{j=1}^{i-1}(a_j + \sqrt{i-j})\)。注意到这是一个典型的\(f_i = \max\limits_{j=1}^{i-1}f_j + w(i,j)\)的形式,考虑决策单调性。不难证明\(\sqrt{x + 1} - \sqrt{x} < \sqrt{x} - \sqrt{x - 1}\),故对于决策点\(p<q , \sqrt{i+1-p} - \sqrt{i-p} < \sqrt{i+1-q} - \sqrt{i-q}\),也就是说\(w(i+1,p) - w(i,p) < w(i+1,q) - w(i,q)\),满足四边形不等式。

那么可以按照传统的方法,在队列中维护决策三元组\((x,l,r)\)表示当\(i \in [l,r]\)时,\(f_i = f_x + \sqrt{i-x}\),每加入一个新的决策时在队尾弹出被当前决策代替的决策,然后在最后一个有效决策的范围上二分得到当前决策的范围。当有询问时直接拿出队头的答案即可。

代码

转载于:https://www.cnblogs.com/Itst/p/11089658.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值