斜率优化相关

发布时间 2023-10-19 10:57:52作者: osfly

记一下。

形如 \(f_i=\min/\max\{f_j+a_ib_j+c_i+d_j+e\}\) 的式子可以使用斜率优化。

如果斜率有单调性,可以使用单调队列。

如果没有,可以使用李超树或者 cdq 分治。

单调队列暂鸽。


没有单调性,使用李超树。

为方便记录,只讨论 \(f_i=\min\{f_j+a_ib_j+c_i+d_j+e\}\)\(\max\) 同理。

对式子变形一下:

\[\begin{aligned} f_i&=\min\{f_j+a_ib_j+c_i+d_j+e\}\\ &=\min\{b_ja_i+f_j+d_j\}+c_i+e\\ \end{aligned} \]

\(b_ja_i+f_j+d_j\) 看作是 \(y=kx+b\) 的形式,也就是每一次往李超树里塞一条 \(k=b_j,b=f_j+d_j\) 的直线,查询的时候只需要查在 \(x=a_i\) 的最值就行了。


cdq 的话还没学。