树链剖分的概念: 树链剖分(重链剖分),是处理树上极值、权值和问题,支持修改和查询的一种数据结构。 主体思路:1、通过轻重边剖分将树分割成多条链; 2、再利用线段树、主席树等数据结构来维护这些链上的信息。 所以我们可以说树链剖分本质上是一种优化暴力。 树链剖分的要素: 重儿子:父亲节点的所有儿子中子 ...
分类:
其他好文 时间:
2019-10-11 18:13:48
阅读次数:
67
2016湖南省赛 I Tree Intersection(线段树合并,树链剖分) 传送门:https://ac.nowcoder.com/acm/contest/1112/I 题意: 给你一个n个结点的树,树上每个节点有自己的颜色 问你删除第i条边后形成的两颗子树有多少个相同的颜色 题解: 树链剖分 ...
分类:
其他好文 时间:
2019-10-10 22:47:35
阅读次数:
78
bzoj4811 [Ynoi2017]由乃的OJ。
树链剖分+贪心+二进制 ...
分类:
其他好文 时间:
2019-10-07 23:24:52
阅读次数:
88
题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=3589 题解 事件 $0$ 不需要说,直接做就可以了。 事件 $1$ 的话,考虑如果直接查询然后相加的话,会有很多段被算重了。于是考虑容斥,把算重的段给减掉就可以了。至于如何计算每一段的答案,直接 ...
分类:
其他好文 时间:
2019-10-06 20:56:34
阅读次数:
130
```cpp // luogu judger enable o2 include define p1 p include define ll long long using namespace std; const int N = 100050; ll sum[N siz[son[x]]) son[ ...
分类:
其他好文 时间:
2019-10-06 00:18:20
阅读次数:
89
bzoj2325 [ZJOI2011]道馆之战。
树链剖分+DP+类线段树最大字段和 ...
分类:
其他好文 时间:
2019-10-05 22:46:17
阅读次数:
110
bzoj1969 [Ahoi2005]LANE 航线规划。
树链剖分 ...
分类:
其他好文 时间:
2019-10-05 18:43:54
阅读次数:
73
1、有关树剖 我们经常用线段树/树状数组来维护一个区间,并进行修改(如区间加、区间乘,区间赋值,区间开方等)和求值(最值、和、积、颜色个数等)的操作,在这基础上还有可持久化线段树等进阶操作,也可以通过套起来成了维护二维面的二维线段树,这都是可以的。 但是,有的时候我们需要去维护一颗树,进行路径上和子 ...
分类:
其他好文 时间:
2019-10-05 12:38:57
阅读次数:
87
本人水平有限,题解不到为处,请多多谅解 本蒟蒻谢谢大家观看 题目:传送门 树链剖分:跑两遍dfs,第一遍找重边,第二遍找重链。 重儿子:父亲节点的所有儿子中子树结点数目最多(size最大)的结点; 轻儿子:父亲节点中除了重儿子以外的儿子; 重边:父亲结点和重儿子连成的边; 轻边:父亲节点和轻儿子连成 ...
分类:
其他好文 时间:
2019-10-05 12:31:50
阅读次数:
98
题意:有一棵树,树上每个结点上有一个字母,有两种操作: 1)询问树上两点u,v间有向路径上有多少个字母和某个固定的字符串相匹配 2)将结点u的字母修改为x 树剖+线段,暴力维护前缀和后缀哈希值(正反都要维护)以及区间内匹配的个数,合并两区间时判断一下跨过分界点的情况就行了。由于被匹配的字符串长度不超 ...
分类:
其他好文 时间:
2019-10-04 20:42:26
阅读次数:
80