
算法-树链剖分
YxuanwKeith
这个作者很懒,什么都没留下…
展开
-
BZOJ 3531 SDOI2014 旅行(travel) 树链剖分模板题
树链剖分模板题原创 2016-03-23 21:01:04 · 974 阅读 · 0 评论 -
JZOJ4600 有标记技巧的链剖
题目大意现在有一颗NN个节点的树,每个节点上都有一个权值,现在有些人会入住树上的这些节点,每个人都会有个自身的权值,而当他入住到某个节点后他新的权值就是自身的权值加上节点的权值。一开始每个节点的权值是0,每个节点上都会住着一个给定权值为AiA_i的人。现在有MM个操作。每种操作读入四个数type,u,v,Valtype,u,v,Val。 type=0type = 0 把树上节点uu到vv的权值增加原创 2016-07-14 20:07:37 · 1659 阅读 · 0 评论 -
CF 487E Tourists(JZOJ4691 旅行) 树链剖分维护点双连通分量信息
题目大意给定一个NN个点MM条边的无向图,每个点有一个点权。现在有两种操作,第一种是修改一个点的点权,第二种是询问两点间路径上的最小点权(不能经过重复的点)。操作数为QQ。N,M,Q≤109N,M,Q \leq 10^9解题思路我们先考虑没有修改点权的情况。那么我们可以先用点双连通分量缩环,缩环后的点权为环上的最小值。而每组询问就变成了求树上两点间的最权值。这个经典问题可以用倍增后链剖来维护。但是有原创 2016-08-15 10:46:13 · 953 阅读 · 0 评论 -
CF 696E ...Wait for it... 链剖练手题
题目大意给定一颗NN个点的树,现在有MM个物品,每个物品一开始都在节点AiA_i上,权值为ii。现在有两种操作,先读入OrdOrd: Ord=1Ord = 1:再读入三个整数u,v,Limu,v,Lim表示从uu到vv这条路径上从小到大把最多LimLim个物品从树上取出,并且从小到大输出。 Ord=2Ord = 2:再读入两个数u,Valu, Val表示给在uu这棵子树的所有物品加上权值ValV原创 2016-08-18 20:02:20 · 853 阅读 · 0 评论 -
JZOJ4479【GDOI2016模拟4.26】游戏 线段树维护多条线段的信息
题目大意给你一颗NN个节点树,每条边都有有一个距离。每个点都有一个初始权值,为123456789123456789。现在有两种操作: Ord=1Ord = 1:给定四个整数S,T,A,BS,T,A,B。表示把SS到TT之间的点都插入一个值为A∗Dis+BA * Dis + B的权值,DisDis为这个点到S的距离(一个点可以有多个权值)。 Ord=2Ord = 2:给定两个整数S,TS,T,表示原创 2016-08-21 23:07:32 · 1120 阅读 · 0 评论 -
51Nod 算法马拉松17 Simple KMP 链剖维护SAM的fail树
题目大意化简一下题意! 现在给你一个长度为NN的字符串,对于每个字符ii,我们要统计AnsiAns_i为前ii个字符有多少个相同的子串,并且其中一个子串一定要经过位置ii。在第ii行输出∑jj=1Ansj\sum_{j = 1}^{j}Ans_j。N≤100000N \leq 100000解题思路我们考虑先对原串建SAM,问题就变成了统计一个前缀所在节点的failfail链上有多少rightrig原创 2016-08-29 11:12:16 · 1132 阅读 · 0 评论