一个 O(1)-O(logn) 非平衡端点移动下四边形不等式半在线区间划分问题的重要成果

问题引入 $val(l,r) = \sum_{i\in[l,r]}\left \lfloor \frac{r}{i} \right \rfloor + w $。

求最优的区间划分方式,使得总 val 的和最小。

发现这个问题就是,左端点移动是 O(1) 的,右端点移动是期望 O(logn) 的。我们忽略这个问题的其他性质,来抽象的研究一下这类问题。

问题条件:

1、区间贡献具有四边形不等式。
2、区间贡献无法随机查询快速计算。(虽然上面那个问题可以,但是我们忽略)
3、区间贡献移动左端点是 O(1) 的
4、区间贡献移动右端点是 O(logn) 的
5、区间贡献半在线(即这个dp是自己转移到自己的)

我们首先考虑如果不是半在线怎么处理。如果目前的需要决策 lenR 个决策,每个决策在 lenL 中选择。我们考虑做多叉分治。我们把 lenR 个平均分成 log 个区间,我们暴力计算每个右端点的最优决策点,这是 lenLlogn,右端点移动的复杂度是 logRlogn 的,此时我们至多递归 logn/loglogn 层,每一层的 sumlenL,sumlenR <= n,所以复杂度是 nlog^2n/loglogn 的。

我们考虑在线情况怎么做。一个 trival 的想法是直接cdq分治后套离线在线,我们会得到一个 nlog^3n/loglogn 的做法。还不够好!

我们考虑 cdq 分治也一次分治成 logn 个子问题。我们逐块计算和转移。我们在转移的时候忽略本块,用块的右端点找最优决策点,我们在本块右端点的最优决策点和下一块右端点的最优决策点之间决策,这样就变成离线的了,而且sumlen只有n,我们跑离线处理,这是 nlog^2n/loglogn 的,然后再计算一个 logn/loglogn 的分治成本,复杂度是 \(\frac{n\log^3n}{(\log\log n)^2}\) 的。注意代码实现的时候,实际上是所有的离线的那种转移同时在做分治。

posted @ 2025-06-05 11:06  皮皮的橙子树  阅读(17)  评论(0)    收藏  举报