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