
树链剖分
图论——树链剖分
NephrenRuqInsania
这个作者很懒,什么都没留下…
展开
-
[BJWC2010] 严格次小生成树(kruskal+树剖)
这题果然是模板题一堆做法但是根本思想是一样的都是先跑一遍最小生成树,然后维护一下路径上最大值和小于最大值的最大值主要的实现方法有三种1.kruskal+倍增+lca复杂度是O(mlogm)O(mlogm)O(mlogm),优点是复杂度低,常熟不是特别大,代码短,缺点是实现细节多2.kruskal+lct复杂度还是O(mlogm)O(mlogm)O(mlogm),优点是复杂度低,代码...原创 2020-02-29 12:11:02 · 469 阅读 · 1 评论 -
[NOIP2015] 运输计划
Solution:Solution:Solution:Subtask 1:20pts\text{Subtask 1}: 20ptsSubtask 1:20ptsm=1m=1m=1好像很可做O(n)O(n)O(n)暴力一下找路径上最长的一条边删去即可Subtask 2:30pts\text{Subtask 2}:30ptsSubtask 2:30...原创 2020-02-28 16:44:24 · 168 阅读 · 0 评论 -
[TJOI2015] 旅游
本来想水题的开始以为就是一个区间维护最大值和最小值结果开开心心的打了200行程序,一测样例,过不去为什么呢?因为他要先买到宝石才能卖掉啊所以白打了200行吗qwq树剖的做法是显然的,线段树维护也是显然的但是不能光维护最大值和最小值了我们需要找一个aaa和bbb使aaa在bbb左边(形象的解释),让vala−valbval_a-val_bvala−valb最大怎么办呢?暴力找吗...原创 2020-02-26 19:11:29 · 245 阅读 · 0 评论 -
[SDOI2014] 旅行
传送门拿到这题,我:树链剖分+线段树!哎呀C有点大。动态开点!不会RE吗…其实是可能会RE的,为什么呢,我们想,最坏情况是每个点有不同的信仰,那么这个时候我们利用的空间是nlognn\log nnlogn 当nnn最坏情况下取10510^5105时,占用空间是13.2×10513.2\times10^513.2×105左右,加上修改需要两倍的空间那么应该保险起见线段树需要开27倍左右,...原创 2020-02-19 16:54:36 · 1316 阅读 · 0 评论 -
[SDOI2011] 染色
这道题,显然我们需要树剖一下然后我们考虑怎么用线段树去维护区间颜色段数我们会想到我们需要维护这么几个东西1.区间段数2.区间左端点的颜色3.区间右端点的颜色合并的时候就是左儿子的段数加上右儿子的段数,如果左儿子的右端点和右儿子的左端点是一个颜色,那么就段数-1因为是区间修改,所以加上一个懒标记就可以了更新跟普通树剖一样,但是查询不太一样这里提供一种适用范围更广的做法我是受到了这...原创 2020-02-18 13:57:42 · 249 阅读 · 0 评论 -
树链剖分
文章目录0.写在前面0.1 我和树链剖分的故事(2019)0.2 我和树链剖分的故事(2020)1.树链剖分1.1 前置芝士1.2 数组定义1.3 重儿子与重链2.树链剖分的代码实现2.1 dfs12.2 dfs23.树剖求lca4.树链剖分模板4.1 线段树4.2 链修改4.3 链查询4.4 子树修改与子树查询4.5 关于时间复杂度5.完整代码6.树链剖分题目推荐7.写在最后0.写在前面0....原创 2020-02-16 16:42:15 · 623 阅读 · 0 评论