树上启发式合并是一个相当好用的优雅的暴力算法
这里就推荐几篇学习笔记吧:
树上启发式合并 算法界优雅的暴力美学
算法学习笔记(86): 树上启发式合并
CF208E 把贡献搞到祖先上去,求距离相同的点对,最后别忘了减1。
CF600E 毋庸置疑的板题,建议先做这个。
CF570D 注意到回文串最多只会有一个字母出现奇数次,然后用异或和记录,就转换成了版题。
CF1009F 同时记一下最大值和当前深度后就直接跑即可。
CF375D 用桶记一下每种颜色的出现次数,再按出现次数记一个桶,最后求一下桶的大小大于k的和。
CF246E 按深度记,再拿个map存就可以了。
CF1585G 博弈+树上启发式合并,需要套一个 SG 函数,然后维护 SG 函数需要一个线段树二分。
P9886 首先要把环缩成点,然后就可以转化为树上求众数,需要支持一个断边的操作。
CF741D 和上面的CF570D前面思路一样,用异或和确定回文串。对于路径和并时要讨论一下,是一道很好的题。