树上启发式合并

题单介绍

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

题目列表

  • Blood Cousins
  • Lomsat gelral
  • Tree Requests
  • Dominant Indices
  • Tree and Queries
  • Blood Cousins Return
  • Poachers
  • [ICPC 2018 Qingdao R] Kawa Exam
  • Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths