Tree-树链剖分
Dream_Lolita
退役OIer,转战ACM
展开
-
【树链剖分】LGP3613 睡觉困难综合征
树链剖分原创 2017-12-12 16:20:45 · 254 阅读 · 0 评论 -
【树链剖分/其它】LOJ3088 「GXOI / GZOI2019」旧词
【题目】LOJ给定一棵nnn个点的树,常数kkk,以及QQQ个询问,每次询问:∑i≤xdep(lca(i,y))k\sum_{i\leq x}dep(lca(i,y))^ki≤x∑dep(lca(i,y))k答案对998244353998244353998244353取模。【解题思路】练一下板子。离线询问,然后按xxx从小到大计算贡献,每次相当于到到根路径上分别加权dep(u)k−...原创 2019-04-23 11:23:47 · 245 阅读 · 0 评论 -
【树链剖分+可持久化线段树】CC_QUERY Observing the Tree
【题目】CC给定一棵nnn个点的带点权树,支持链加等差数列,求链和,回到第xxx次修改的版本。n,m≤105n,m\leq 10^5n,m≤105【解题思路】练手(毒瘤)题。没有回退操作的话就是一些基本操作了,维护一下斜率和截距就可以了。有回退的话再可持久化一下就好了。【解题思路】#include<bits/stdc++.h>using namespace std;...原创 2019-04-25 21:48:16 · 302 阅读 · 0 评论 -
【树链剖分+差分】CC_DGCD Dynamic GCD
【题目】Codechef给定一棵nnn个点的点权树,mmm次操作询问一条路径上所有数的gcdgcdgcd将一段路径的点权加上ddd【解题思路】首先考虑序列上的问题。我们处理gcdgcdgcd有一个辗转相减法,即gcd(a,b)=gcd(b−a,b)gcd(a,b)=gcd(b-a,b)gcd(a,b)=gcd(b−a,b)。于是我们维护一个原序列和一个差分序列,其中差分序列用线段...原创 2019-02-25 22:05:56 · 297 阅读 · 0 评论 -
【树剖+线段树+堆/整体二分+BIT】BZOJ4538 [Hnoi2016] 网络
【题目】BZOJ给定一棵nnn个点的树,支持三种操作:给树的一条路径打上一类标记删去一类标记求未经过某个点的所有标记的最大权值。n,Q≤2×105n,Q\leq 2\times 10^5n,Q≤2×105【解题思路】如果我们二分答案,那么问题就变成了求是否所有权值大于等于KKK的路径都没有经过某个节点。这个问题可以利用树上差分,在(u,v)(u,v)(u,v)打上+1+1+1...原创 2019-03-01 11:42:19 · 189 阅读 · 0 评论 -
【双树问题-树剖+线段树合并】CC_EDGEST Edges in Spanning Trees
【题目】Codechef给定相同点集(大小为nnn)上两棵生成树T1,T2T_1,T_2T1,T2。对于T1T_1T1中每条边,求T2T_2T2中有多少条边满足:T1−e1+e2T_1-e_1+e_2T1−e1+e2(从T1T_1T1中删去e1e_1e1再加上e2e_2e2)是一棵生成树T2−e2+e1T_2-e_2+e_1T2−e2+e1是一棵生成树n≤2...原创 2019-02-22 21:52:42 · 527 阅读 · 0 评论 -
【单调栈/树链剖分】CF860E Arkady and a Nobody-men
【题目】CF给定一棵nnn个节点的有根树,定义f(x,y)f(x,y)f(x,y)(其中yyy是xxx的祖先)表示yyy后代中除xxx以外深度不大于xxx的节点数。定义g(x)=∑f(x,y)g(x)=\sum f(x,y)g(x)=∑f(x,y)。求所有g(x)g(x)g(x)。n≤5×105n\leq 5\times 10^5n≤5×105【解题思路】一个比较naive\text{na...原创 2019-01-30 15:46:42 · 228 阅读 · 0 评论 -
【树链剖分+线段树】CF960H Santa's Gift
【题目】原题地址给定一棵nnn个节点的有根树和一个参数CCC,每个节点有一个编号fif_ifi,范围为1∼m1\sim m1∼m,每种编号有一个权值cic_ici,有两种操作:修改一个点的编号给出xxx,记cnticnt_icnti为树中节点iii子树中编号为xxx的节点个数,求∑i=1n(cnti⋅cx−C)2n\frac {\sum_{i=1}^n(cnt_i\cdot c_x...原创 2019-01-05 10:39:26 · 342 阅读 · 1 评论 -
【树链剖分】BZOJ2896 桥
【题目】原题地址给定一幅nnn个点mmm条边的无向图,两种操作删除一条边询问两点间有多少条边是桥边n≤3×104,m≤105,Q≤4×105n\leq 3\times 10^4,m\leq 10^5,Q\leq 4\times 10^5n≤3×104,m≤105,Q≤4×105【解题思路】首先考虑暴力,我们每次删边后,将图的边双缩起来,那么两点间桥的数量就是这两点所在边双在树上的...原创 2018-12-15 22:14:32 · 247 阅读 · 0 评论 -
【树链剖分】【UR #4】UOJ53 追击圣诞老人
原题地址 【题目分析】 一看这个数据范围,标准的数据结构题,而且基本上就是O(nlogn)O(nlogn)的算法了。 这道题花了我2h+才搞定,可以说我是很弱了。 注意一个城市可以经过多次。【解题思路】算法1暴力枚举所有长度不超过k的路线,复杂度O(nk)O(n^k),可以得到10pt算法2考虑路线权值的增加对答案的影响,令W(A)W(A)表示一种路原创 2019-07-15 12:29:51 · 674 阅读 · 2 评论 -
【长链剖分】CF1009F Dominant Indices
【题目】CF给定一棵nnn个节点的数,定义dx,id_{x,i}dx,i表示子树内和xxx距离为iii的节点数,对每个xxx求使得dx,id_{x,i}dx,i最大的iii,若有多个输出最小的。n≤106n\leq 10^6n≤106【解题思路】一个简单的状态转移就是dx,i=∑v∈sonxdv,i−1d_{x,i}=\sum_{v\in son_x}d_{v,i-1}dx,i=∑...原创 2019-04-25 06:58:04 · 314 阅读 · 0 评论