![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构 ------ 树链剖分
文章平均质量分 67
orz11111111
这个作者很懒,什么都没留下…
展开
-
树链剖分(合集)
参考链接 点击打开链接 树链剖分通常用于处理树的形态不变 但点权/边权需要修改查询的题目 树链剖分就是把树拆成一系列链,然后用数据结构对链进行维护。 通常的剖分方法是轻重链剖分,所谓轻重链就是对于节点u的所有子结点v,size[v]最大的v与u的边是重边,其它边是轻边,其中size[v]是以v为根的子树的节点个数,全部由重边组成的路径是重路径, 性质:任意一点到根的路径原创 2017-08-21 16:28:08 · 261 阅读 · 0 评论 -
HDU 5044 Tree 树链剖分+差分
题意:n点m条边的带权树,点边都带权,Q次操作. op1:将u,v路径上所有点的权值加k. op2:将u,v路径上所有边的权值加k. n,m 操作为区间+,查询只要最后一次,可以不用线段树,破树成链以后,用两个数组差分一下就好了. #pragma comment(linker, "/STACK:1024000000,1024000000") #include usin原创 2017-09-16 10:08:11 · 244 阅读 · 0 评论 -
HDU 5274 Dylans loves tree 树链剖分(水)
HDU 5274 题意:n个节点的树,第i个节点权值为a[i].Q次操作. 操作1:修改a[x]的点权为y 操作2;询问[x,y]路径中是否有权值出现奇数次(保证出现奇数次的权值最多一个) n,Q,a[i] 修改点权 查询路径中是否有点权出现奇数次. 树链剖分后 维护区间的异或和即可. 注意权值可能为0 全部离散化,每个值+1,最后答案减去1即可. #include usi原创 2017-10-17 14:00:32 · 197 阅读 · 0 评论 -
HDU 6393 Traffic Network In Numazu 环套树+树链剖分
题意:n点n条边的无向带权图,m次操作. 操作1:修改x-y的边权 操作2:询问x-y的最短路. n,m<=1e5.1<=w[i]<=1e5 因为是n条边的联通图,也就是环套树的形式. 并查集找出环上任意一条边(u,v). 现在(x,y)的最短路可以分为:是否经过边(u,v). 不经过边(u,v) 则(x,y)的距离为树上两点的距离. 经过边(u,v) 注意有两种方案: x-...原创 2018-10-26 17:27:52 · 170 阅读 · 0 评论