随笔分类 -  树链剖分

树链剖分专题题解 http://vjudge.net/contest/133106#overview
摘要:int head[N],hcnt; int n,m,flag,L,R; int son[N],siz[N],fa[N],top[N]; int id[N],tid,dep[N],posi[N]; LL seg[N>1;LL temp=0; if(Lmid) temp+=query(rson); return temp; } void update(int rt,int l,int... 阅读全文
posted @ 2016-10-06 10:57 Kurokey 阅读(247) 评论(0) 推荐(0)
摘要:题目链接:传送门 题目大意:中文题,略 题目思路:网上有题解说是合并线段树的,但是太难蒟蒻不会,只能用树剖求解 如果不是树而是一维数组我们会怎么解? 当然是利用前缀和思想标记 (L) v+1,(R+1) v-1,然后扫一遍 用线段树取最大复杂度 nlogn 现在是搬到了树上,怎么做? 利用树链剖分拆 阅读全文
posted @ 2016-10-06 10:53 Kurokey 阅读(312) 评论(0) 推荐(0)
摘要:题目链接:传送门 题目大意:一棵无根树,每个点上有权值,两种操作,0 x y询问x~y路径上权值和 1 x y将 节点 x 权值变为y。对于询问操作输出答案。 题目思路:树链剖分 阅读全文
posted @ 2016-10-04 20:53 Kurokey 阅读(1989) 评论(0) 推荐(0)
摘要:题目链接:传送门 题目大意:中文题,略 题目思路:树链剖分(注意要把边上的权值转移到深度较大的点上来维护) 最后当top[x]==top[y]注意id[x]+1因为是维护的点而题目是边 如果不+可能会出现重复加的情况。 阅读全文
posted @ 2016-10-03 17:37 Kurokey 阅读(341) 评论(0) 推荐(0)
摘要:题目链接:传送门 题目大意:中文题,略 题目思路:树链剖分裸题。 闲谈:树链越练越熟练了 阅读全文
posted @ 2016-10-01 16:00 Kurokey 阅读(203) 评论(0) 推荐(0)
摘要:题目链接:传送门 题目大意:中文题,略 题目思路:树链剖分,区间更新,区间查询。 闲谈: 只想说这道题做的好苦逼。。去长春现场赛之前就没A,回来后又做了2天才A掉,蒟蒻太菜了 这道题也没有想象中那么难,就是代码有点长。。 在查询的时候注意判断端点交界处如果相同则答案-1。 阅读全文
posted @ 2016-09-30 18:09 Kurokey 阅读(270) 评论(0) 推荐(0)
摘要:题目链接:传送门 题目大意:给一棵树,三种操作,query询问 a ~ b 路径上最大边权值,change改变按输入顺序的第 a 条边的 边权为 b,negate将 a~b路径上的边权值取相反数。 题目思路:树链剖分,取相反数直接更新到底就行,不用延迟标记,若非要延迟的话,则线段树需保存最大值和 最 阅读全文
posted @ 2016-09-29 18:37 Kurokey 阅读(187) 评论(0) 推荐(0)
摘要:题目链接:传送门 题目大意:给你一棵树,小明起点在一个节点上,然后每条边有权值,有两种操作。 0 X叫小明从当前节点到 X,花费为路径上权值和。 1 X V 表示把 按输入顺序中第 X 条边的权值变为 V 对于每个操作 0,输出对应的花费。 题目思路:树链剖分 对于这种边上有权值但是是查找点对的题目 阅读全文
posted @ 2016-09-23 10:37 Kurokey 阅读(182) 评论(0) 推荐(0)
摘要:题目链接:传送门 题目大意:给你一棵无根树,每个树节点上有权值,有三种操作,I x y v(从x到y的路径上每个点权值+v) D x y v(从x到y的路径上每个点权值-v)Q x(树节点为x 的权值是多少,权值可以为负) 题目思路:树链剖分 阅读全文
posted @ 2016-09-22 22:02 Kurokey 阅读(150) 评论(0) 推荐(0)
摘要:题目链接:传送门 题目大意:给一棵无根树,树边有权值,有很多次操作,QUERY代表询问从 x 到 y 路径上的边的最大 权值,CHANGE代表改变按输入顺序第 x 条边的权值为 y。 对于每个QUERY,输出一个答案。 题目思路:树链剖分(第一次学树链,还有点云里雾里的) 阅读全文
posted @ 2016-09-22 18:08 Kurokey 阅读(352) 评论(0) 推荐(0)