![](https://img-blog.csdnimg.cn/20190918140158853.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构------树链刨分
h
蒋卫升
这个作者很懒,什么都没留下…
展开
-
中国女大学生程序设计竞赛 tree
题目链接 树链刨分模板题 #include<cstdio> #include<algorithm> #include<cstring> #include<cmath> #include<vector> using namespace std; #define ll long long const int maxn=1e5+100...原创 2019-10-15 18:33:22 · 147 阅读 · 0 评论 -
洛谷 P3313 旅行 (树链刨分)
题目链接 题意,给你一棵树,树上每个节点代表一座城市,有两个信息分别为c和w,一个人从某点出发到达另一个点,只会在与他c值相同的地方住宿。有四种操作,分别是,更改某做城市的c,更改w,输出两座城市之间的住宿城市的和,输出两座城市之间的住宿城市的最大w。 思路:这题没什么难度,只要想清楚根据什么建树就好了。因为他只会在与他c值相同的地方住宿,那么,我们的线段树肯定要根据c值建的,由于c的取值范...原创 2019-10-13 19:10:42 · 144 阅读 · 0 评论 -
树链刨分模板题
题目链接 两个dfs预先处理出我们需要用到的七个信息。第一个dfs我们需要预处理出四个信息,分别是,f(结点的父亲),son(节点的重儿子),dep(节点的深度),size(节点的大小),第二个dfs处理三个信息,分别是,top(此节点所在链的根节点),id(节点在线段树中的编号),val(节点所在线段树中的点权值)。对于更新u,v这条链的值,如果u,v不在同一条链上,首先我们找到 u,v ...原创 2019-10-07 16:50:39 · 151 阅读 · 0 评论 -
树链刨分+线段树区间更新
思路及代码:https://blog.csdn.net/ccsu_cat/article/details/90607753 题目链接 题意:给你一棵树,有三种操作,1操作,把节点u,到v的最短路路径上的节点or一个值,2操作,把节点u到v的最短路路径上的值&一个数,3操作,输出节点1到u的异或值; 思路:这一题涉及节点与节点之间的关系,我们用树链剖分,把树分解一下加到线段树上去。这...原创 2019-10-10 16:44:13 · 131 阅读 · 0 评论