静态树上数颜色的问题总结
winter2020 · · 个人记录
问题1: 给你一棵树,每个点有一个颜色,
下面默认
巨大暴力:
预处理每个点维护每种颜色的出现次数。
时间复杂度
dsu-on-tree:
典中典板子题,离线做一下就完了
时间复杂度
问题2: 给你一棵树,每个点有一个颜色,
巨大暴力:
预处理每个点维护每种颜色的出现次数,询问时枚举颜色。
时间复杂度
能不能好一点呢?
可是你会启发式合并啊。
然后呢?怎么统计?
智商不够数据结构来凑,套个树状数组就好了。
时间复杂度
能不能再好一点呢?
智商够了,不用树状数组了。
考虑算答案的过程,发现就是在做树状数组的前缀+1,只要在对出现次数+1的过程中进行答案单点的+1就行了。
时间复杂度
能不能再优秀一点呢?
dsu-on-tree 做法是离线的,如果强制在线?
还是跑启发式合并。
可以考虑先把这个破问题变复杂一点,开一颗线段树维护答案。做类似主席树类的东西,每次单点修改(递归)的时候直接新复制一个点做修改。
时间复杂度