树链剖分
Dawn_LLLLLLL
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
洛谷 P2590 [ZJOI2008]树的统计(树链剖分)
传送门 比较基础的树链剖分吧。。。 树链剖分的关键就在把在同一条链上的点的编号连续,这样就可以快速地用线段树维护修改与求值了(当然据说线段数组也可以)。 而我们找链的依据是什么? 这就要提到重链了。 首先我们提出一个概念:重儿子 重儿子就是儿子中他的子节点数最少的一个。 #include<cstdio> #include<cstdlib> #inclu...原创 2018-06-28 13:24:00 · 324 阅读 · 0 评论 -
洛谷 P3178 [HAOI2015]树上操作(树链剖分)
传送门 裸的树链剖分。。 不会的同学可以戳这。。 我觉得可以直接上代码。。 这次并没有动态开点。。 Code: #include<cstdio> #include<cstdlib> #define ll long long struct node{int y,next;}a[200010]; struct tree{int l,r,lc,rc;ll c...原创 2018-06-28 13:34:08 · 292 阅读 · 0 评论 -
洛谷 P3313 [SDOI2014]旅行(树链剖分+线段树)
传送门 这题是求固定路径上某固定宗教的评级最大值或和,由于我们知道树上路径是顺着链走的,我们可以用树链剖分使一条链上的编号连续,方便查询。 每个宗教建一棵线段树,动态开点,编号按树链剖分后的新编号,维护的是城市评价。 那么改变评级就相当于改变某线段树内的值,改变宗教就相当于换根(移到另一棵线段树内)。 求值时按链往上跳,统计答案。 Code: #include<cst...原创 2018-07-12 09:31:48 · 290 阅读 · 0 评论
分享