社区讨论

空间单 log 时间双 log 做法已通过

P4148简单题参与者 11已保存回复 13

讨论操作

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

当前回复
13 条
当前快照
1 份
快照标识符
@mko4a7u2
此快照首次捕获于
2026/01/21 22:27
4 周前
此快照最后确认于
2026/01/22 18:08
4 周前
查看原帖
本题的 20MB 空间很明显就是要卡多 log 的树套树状物。
问题不大,先用二进制分组解决完强制在线,转化为 log\log 次在线静态二维数点。
这个问题一般是持久化线段树解决,但是需要开 O(nlogn)O(n \log n) 个节点,算每个节点至少开三个 int,总空间超过了 40MB,不可行。
但是很多情况持久化线段树解决的问题是有平替的,比如区间 kth 和在线静态二维数点,此类问题可以使用 Wavelet Matrix 解决。
使用 Wavelet Matrix 后,无点权的情况可以做到线性空间,有点权可以做到只开 nlog2nn \log_2 nint,实测最大空间 13.21MB,优于一些实现不好的 KDT。
而且时间复杂度是 O(nlog2n)O(n \log^2 n) 的。

回复

13 条回复,欢迎继续交流。

正在加载回复...