题目名字持续嘲讽……
非常套路。
首先考虑对每个颜色开一棵线段树,然后树剖维护即可。
这个想法非常显然(O(nlog2n)),但是有更好的做法。
发现每种操作最多涉及两种颜色(删掉原来的,添加新的),所以我们可以对每种颜色独立讨论。
那么问题变成树上单点修改,路径查询。
这个用 DFS 序 + 树状数组就可以做到 O(nlogn) 了。
以下代码为某 naive 爆的两只 log 做法。
代码:
1 |
|
题目名字持续嘲讽……
非常套路。
首先考虑对每个颜色开一棵线段树,然后树剖维护即可。
这个想法非常显然(O(nlog2n)),但是有更好的做法。
发现每种操作最多涉及两种颜色(删掉原来的,添加新的),所以我们可以对每种颜色独立讨论。
那么问题变成树上单点修改,路径查询。
这个用 DFS 序 + 树状数组就可以做到 O(nlogn) 了。
以下代码为某 naive 爆的两只 log 做法。
代码:
1 | #include <cstdio> |
Related Issues not found
Please contact @Alpha1022 to initialize the comment