
树链剖分
aozil_yang
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
HDU 3966 Aragorn's Story (树链剖分)
大体题意: 给你一棵树,给你三种操作,u到v 结点之间的结点 加上K,减去k ,查询结点u的权值? 思路: 数据比较大,肯定不能直接暴力。 通过这个题目学习到了树链剖分(可以百度一下)。 这个题目用树状数组就足够了。 简单记录一下 树链剖分。 第一个dfs 记录每个结点深度和 重儿子(子孙最多的儿子)。 第二个dfs 就开始把重边化成重链了。并且重新编号(因为树状数组和线段树只能原创 2017-02-13 01:50:33 · 516 阅读 · 0 评论 -
UVA 1674 Lightning Energy Report (树链剖分)
题意: 给你一颗树(节点数最多5w), 给你q个操作, 每个操作,让你u,v两个结点之间的路径上的所有的点的权值都加上w。最后输出n 个点的权值? 思路: 裸树链剖分= =~ 和HDU 3966 一样的, 用树状数组就可以了 详细见那一篇博客:Blog_HDU 3966 #include #include #include #include #define ps push_b原创 2017-03-03 21:28:04 · 579 阅读 · 0 评论 -
UVA 11354 Bond (最小生成树 + 树链剖分)
题意: 给你一个图, q 个查询, 每个查询输出两点之间 的路径中 最大值的最小值。 思路: 要想路径最大值最小, 边肯定在最小生成树上。 先把图建成最小生成树。 那么问题就是 输出树上两点之间的 边权最大值。 赤裸裸的树剖。 可惜比赛时脑残没有想到 最小生成树。 #include #include #include #include using namespac原创 2017-08-21 17:41:43 · 325 阅读 · 0 评论 -
HDU 6162 Ch’s gift (2017多校9 - 树链剖分 + 线段树)
题意: 给一棵树, q 个查询,每个查询 输出 一条链中 点权 在指定范围内的 加和。 思路: 链中的操作,显然是用树链剖分。 但是有个很难处理的问题, 如和求一个链中的 点权 在制定范围内的加和。 用线段树就可以了。 维护区间内最小值,最大值, 和 总和。 如果区间最小值, 最大值 都在范围内,那么肯定整个区间都在制定范围内了, 就不用在向下找了。 如果区间 最大值 小于制定原创 2017-08-22 20:07:00 · 632 阅读 · 0 评论