专栏文章
题解:P14136 【MX-X22-T7】「TPOI-4G」终焉
P14136题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @minq04up
- 此快照首次捕获于
- 2025/12/02 06:28 3 个月前
- 此快照最后确认于
- 2025/12/02 06:28 3 个月前
赛时降低了难度,所以并不需要快速 RMQ。
对颜色按出现次数和分块,使得每一块如果选了超过一种颜色,就必须总出现次数不超过 。
此时对于总出现次数不超过 的块,将出现的位置暴力取出,暴力算出每个区间的最大出现次数,然后对于每个给定的区间,在外面对 分别排序,在分块的时候双指针,得出对应区间。
如果总出现次数超过了 ,此时只有一种颜色,直接双指针求出该颜色的出现次数即可。
于是这样我们得出了每个给定的区间中,块内颜色的最大出现次数,此时做一个 RMQ 即可。
此时复杂度为 。
然后对于查询的颜色散块,其出现次数总和不超过 ,我们对所有询问的 区间进行分治,分治时从 往两边做扫描线,将 插到树状数组里,具体地,用树状数组记录 中最大的 ,然后对于询问枚举所有散块颜色,在散块内做双指针,在树状数组上面 check,这里复杂度也是 的。
于是我们得出了 的可以通过的做法,空间 。
实际实现时 RMQ 仅仅进行 分块,而并没有处理查询端点同块的情况,因为时间来不及了。
块长调成 即可通过,空间不到 64MiB。
降低难度之后的替代品:
对于颜色整块,直接对于 这些区间做回滚莫队即可这样的空间复杂度会达到 。
这样至少有一个好处就是简单地去掉了快速 RMQ,具体能不能进一步优化不清楚。
upd:
发现这里也不需要开大空间,因为我们可以在回滚莫队时每求出 个答案就做取出得到答案的下标,暴力统计每个区间的最大值(硬要 ST 表也可以,不过我觉得还不如暴力统计快),再对询问的 的左右端点进行双指针,这样又做到空间 了,但是如果忽略快速 RMQ 的话,这个算法要远远地比之前的算法难写。
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...