专栏文章
题解:P12485 [集训队互测 2024] PM 大师
P12485题解参与者 2已保存评论 1
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @minyhs2l
- 此快照首次捕获于
- 2025/12/02 10:25 3 个月前
- 此快照最后确认于
- 2025/12/02 10:25 3 个月前
击杀了这个题很爽,想到了转置就全对了!
用 给所有位置分段,相当于每段有一个集合 。从值域的角度入手,处理出元素 的极长未出现前缀长度 ,所有 位置的 的生成方式形如:维护当前值 以及位置 ,找到 中最小的 ,然后 。一个位置修改时,会影响后面点的排名,但是被选入答案的点的集合变化量是 的。维护被选入 的所有值构成的集合 ,尝试找到 的变化。
想到这个之后前 个 sub 都是平凡的。
subtask5:只向某个集合插入元素。考虑在集合 插入 的影响,不妨设此时令 。若 存在于 且在 的排名 那么需要向 后面找到一个插入 的元素。用一点数据结构手法,对于值 维护 (显然除去 的 是互不相同的)。对于 ,发现其等价于 , 等价于 。对 做区间加/减,找到 的位置调整到 里即可。
拓展到从集合中删除元素:可能将修改的 加入 中,反过来维护一个 。使用线段树支持对 的区间加以及最小值位置的提取。时间复杂度 。
相关推荐
评论
共 1 条评论,欢迎与作者交流。
正在加载评论...