专栏文章

题解:P14061 【MX-X21-T6】[IAMOI R5] 希望有羽毛和翅膀

P14061题解参与者 2已保存评论 1

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
1 条
当前快照
1 份
快照标识符
@mintnrd3
此快照首次捕获于
2025/12/02 08:10
3 个月前
此快照最后确认于
2025/12/02 08:10
3 个月前
查看原文
nlognn\sqrt{n\log n}\to \sqrt{n} 改了三分钟就过了,是谁以为倍增常数不大的。
固定 kk 时,发现回文串长度只能是 kk 或者 k+1k+1,从 ll 开始贪心,对于两种情况只需要分别找到最近的,符合对应 lll'\ge l 的回文中心跳,取更近的作为这个 rr 跳过去。
按照 kk 进行扫描线,预处理所有奇偶回文中心,那么一段 kk 之后会删除某些中心,相当于维护一个集合 SS,支持删除 xSx\in S,或者给定 xx 查询最小的 yS,yxy\in S,y\ge x。这一步可以 n\sqrt n 删除,O(1)\mathcal O(1) 查询:对序列分块,维护块内后继以及块间后继,重构复杂度 n\sqrt n。又因为答案不超过 nk\frac{n}{k},所以 k>Bk>B 时直接暴力跳即可;kBk\leq B 时处理每个点后继,求 ll 开始多少步可以到达 rr。注意预处理只能线性,因此同样序列分块,处理块内后继以及块外首个后继与对应步数,查询的代价是 O(n)\mathcal O(\sqrt n)。如果使用倍增,那么预处理的复杂度会多 log\log
n,qn,q 同阶,总时间复杂度 O(nn)\mathcal O(n\sqrt n)

评论

1 条评论,欢迎与作者交流。

正在加载评论...