首页 > 其他 > 详细

树链剖分刷题总结

时间:2019-07-08 23:59:36      阅读:157      评论:0      收藏:0      [点我收藏+]

前言

因为\(kma\)过菜导致被数据结构吊打QWQ,这里总结一下做过的树剖题,大概是个一句话题解+记录犯过的睿智错误的地方


染色

传送门

染色

分析

先考虑在线段树上维护区间颜色段的做法:记一下区间左右端点,每次合并上来是左儿子总数+右儿子总数,再判一下中间颜色是否一样决定是否-1
在树上维护同理,注意在跳重链的时候判一下两段重链相邻部分是否颜色一致

博客链接

染色


月下“毛景”树

传送门

月下“毛景”树

分析

第一遍\(DFS\)的时候把边权下放到点上,注意跳重链最后跳过\(LCA\)\(LCA\)的点权是上面边下放下来的)

博客链接:

月下“毛景”树


松鼠的新家

传送门

松鼠的新家

分析

每次走边可以看做沿途点权+1,但起点不要+1
(另:本题可以树上差分,代码待补)

博客链接:

松鼠的新家


部落冲突

传送门

部落冲突

分析

先把边权下放到点上(常规操作),然后考虑两种办法维护:

  • 同染色,查询区间颜色段是否为1且均为连通
  • 维护区间最值,给连通和不连通分别打1或0,然后查询最值判断是否连通

博客链接

部落冲突

树链剖分刷题总结

原文:https://www.cnblogs.com/kma093/p/11154809.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!