首先我觉得非常重要的一点就是分析出这个题不能 polylog 做。
先辈曾经说过,与集合类操作有关的复杂问题基本上不能 polylog 做,这个题就有点倒水清空的意思。不过更直接的步骤是,你感觉自己 polylog 不太会,于是想一想根号做法。
我只会根号 log。
首先经典结论是每一段长度单调不减,我们将连续一段长度相同的段可以二分计算得出,这样就变成了段长度严格递增,那么最多 \(sqrt n\) 次遍历完,于是即可做到 \(O(n \sqrt n \log n)\) 的复杂度,如果预处理一些光速后继的东西可以将 log 扔到里面。
感觉根号做法比较牛。