专栏文章
题解:P4477 [BJWC2018] 基础匹配算法练习题
P4477题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mipir1f3
- 此快照首次捕获于
- 2025/12/03 12:40 3 个月前
- 此快照最后确认于
- 2025/12/03 12:40 3 个月前
只有询问无修改,于是考虑莫队维护 。
容易发现对于每个 ,它可以匹配的 总是一个从 开始的连续区间。采用贪心的思想,我们对于每个 ,我们尽量选择最大的那个 ,称其为它的「最佳位置」。
对于这种连续区间,我们考虑使用线段树维护之。维护三个信息:
-
答案 ;
-
区间大小 ;
-
匹配成功的 区间大小 。
具体而言:
-
增加:尽可能地向右子树寻找 以使得 最大化,若最后匹配得了且是「最佳位置」,那么令 ,;
-
删除:最后若 先前有匹配,则令 ,。
pushup 时:-
可以直接加;
-
不仅要加上左右子树,还有可能右子树闲置的 与左子树闲置的 进行匹配。
综上,本题是莫队与线段树的结合,其中莫队为整体框架,线段树处理寻找匹配与计算贡献的问题,并且让我们学会了只有询问考虑莫队、以及连续区间问题考虑线段树的技巧。时间复杂度 ,代码,需要快读。
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...