树上启发式合并

树上启发式合并是一个相当好用的优雅的暴力算法

这里就推荐几篇学习笔记吧:

树上启发式合并 算法界优雅的暴力美学

算法学习笔记(86): 树上启发式合并

CF208E 把贡献搞到祖先上去,求距离相同的点对,最后别忘了减1。

CF600E 毋庸置疑的板题,建议先做这个。

CF570D 注意到回文串最多只会有一个字母出现奇数次,然后用异或和记录,就转换成了版题。

CF1009F 同时记一下最大值和当前深度后就直接跑即可。

CF375D 用桶记一下每种颜色的出现次数,再按出现次数记一个桶,最后求一下桶的大小大于k的和。

CF246E 按深度记,再拿个map存就可以了。

CF1585G 博弈+树上启发式合并,需要套一个 SG 函数,然后维护 SG 函数需要一个线段树二分。

P9886 首先要把环缩成点,然后就可以转化为树上求众数,需要支持一个断边的操作。

CF741D 和上面的CF570D前面思路一样,用异或和确定回文串。对于路径和并时要讨论一下,是一道很好的题。


  1. CF208E - Blood Cousins
  2. CF600E - Lomsat gelral
  3. CF570D - Tree Requests
  4. CF1009F - Dominant Indices
  5. CF375D - Tree and Queries
  6. CF246E - Blood Cousins Return
  7. CF1585G - Poachers
  8. P9886 - [ICPC 2018 Qingdao R] Kawa Exam
  9. CF741D - Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths