随笔分类 -  数据结构——树链剖分

摘要:Description 给定一棵树和若干次操作,树上节点的权值一开始都是0,要求完成如下操作: 令x,y两点间路径上点的点权都乘上一个数 令x,y两点间路径上点的点权都加上一个数 令x,y两点间路径上点的点权都按位取反(~) 查询两点间路径上点的点权之和 所有答案均对$2^{64}$取模 Solut 阅读全文
posted @ 2019-08-02 20:52 AD_shl 阅读(165) 评论(0) 推荐(0)
摘要:Description 给定一棵树和若干操作,每次可以选取树上任意两点之间的路径染成一种颜色,或是查询任意两点之间路径上有多少段颜色。 Solution 树链剖分不解释,主要分析线段树的维护,在线段树区间上我们维护区间左端的颜色、右端的颜色、整个区间颜色段的数量。那么当我们合并两个区间时,我们首先将 阅读全文
posted @ 2019-07-14 13:42 AD_shl 阅读(206) 评论(0) 推荐(0)
摘要:这道题洛谷给的标签是LCA,线段树,树链剖分。 当然LCA+树上差分能通过这道题,但出现在树链剖分当中,我决定用树链剖分解决 显然这是一道裸的树链剖分。树剖之后进行区间修改,单点查询操作。(这道题线段树都不用build……23333) 我们按照题目给的顺序给这一棵"树"放上糖果,当然注意重复的部分要 阅读全文
posted @ 2019-03-16 15:32 AD_shl 阅读(341) 评论(0) 推荐(0)
摘要:NOI2015的试题,一道树链剖分的模板题主要过程:树剖完成后对线段树进行区间修改,区间查询。代码较长,很考验代码能力 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 typedef long long ll; 5 i 阅读全文
posted @ 2019-03-16 11:00 AD_shl 阅读(223) 评论(0) 推荐(0)
摘要:这是一道树链剖分的模板题,首先要学会线段树、dfs、链式前向星之类的,不然……//打暴力吧 本题很考验代码能力,难度不大,主要是细节繁多。(我调了1h) 树链剖分的原理不再赘述(详见《信息学奥赛一本通·提高版》),主要说一下一些容易错的细节。 ps:本人树链剖分的写法来源于《信息学奥赛一本通·提高版 阅读全文
posted @ 2019-03-10 10:51 AD_shl 阅读(181) 评论(0) 推荐(0)
摘要:一道普通的树链剖分模板题,注意细节即可 几个易错点总结: 阅读全文
posted @ 2019-03-09 14:39 AD_shl 阅读(331) 评论(0) 推荐(0)