专栏文章
线段树合并
个人记录参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mipkkz27
- 此快照首次捕获于
- 2025/12/03 13:31 3 个月前
- 此快照最后确认于
- 2025/12/03 13:31 3 个月前
CF600E Lomsat gelral
给定一个大小为 并且以 为根的树。对于树上的结点 有一个颜色 现在对于树上的每一个结点 ,输出以 为根的子树出现最多的颜色的编号,如果有多个颜色出现次数均为最大,输出它们的编号和。 ,
-
用线段树合并求出每一个点的子树信息。
-
以颜色 作为下标建立线段树。叶子结点存对应的颜色出现次数,非叶子结点存最大出现次数
mx和编号和sumID -
然后就是线段树合并,对于叶子结点,累加即可。对于非叶子节点 ,先把其的左右儿子和 的左右儿子对应合并,然后考虑
push_up这个过程。
CF570D Tree Requests
给定一个以 为根的树。树上的每一个点 都有一个小写字母 有 次询问,每次询问给定两个参数 和 ,表示询问 子树内深度为 的结点的 是否能重新排列成为一个回文串。 ,
-
线段树合并,以深度
dep为下标建立线段树。 -
由于 只有 中,而且只需要考虑每一个字母出现次数的奇偶性,因此状压即可。
-
由于只询问某一个深度,因此线段树上只需要维护叶子结点的信息,查询某一个深度的信息时在线段树上二分即可。
P3899 [湖南集训] 更为厉害
给定一个大小为 并且以 为根的树。 有 次询问,每次询问给定两个参数 和 ,表示询问有多少个点对 满足:
三点互不相同 和 均为 的祖先节点。 和 距离为不超过
-
若 为 的祖先节点,则只需要令 为 的子树节点即可。贡献为
-
若 为 的子树节点,则需要查询 子树内深度 在 范围 之和。
-
以 为下标建立线段树,线段树合并即可。
-
注意
upd函数要写一个if(!u) u = ++ idx
P8907 [USACO22DEC] Making Friends P
给定 头奶牛,初始有 对朋友关系 现在奶牛以 的顺序离开。每当一头奶牛 离开时,它所有的朋友都会互相建立朋友关系。 问 头奶牛离开之后,新增了多少对朋友关系。 ,
-
考虑一种延迟的操作,每次找到与 相邻并且编号最小的点 ,然后让 和 的其余朋友 连边。即把 集合内除了 的所有元素扔到 集合里面。
-
发现每次取出 时都能保证 集合是当前 的所有朋友结点,累加答案即可。
-
感觉理解的不好
P9400 「DBOI」Round 1 三班不一般
整体
dp相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...