随笔分类 -  树链剖分

摘要:题目大意就是按照他给的顺序遍历树,问每个节点会经过几次,最后的那个要减1 类似前缀和的思想 从起点x到终点y,只需给x,y两个结点加1,给LCA(x,y),fa[LCA(x,y)]减1,最后做一次从底到根的递推即可求出每个点在多少条链上 阅读全文
posted @ 2016-05-17 21:12 Yangjiyuan 阅读(170) 评论(0) 推荐(0)
摘要:题意:给一棵树,并给定各个点权的值,然后有3种操作:I C1 C2 K: 把C1与C2的路径上的所有点权值加上KD C1 C2 K:把C1与C2的路径上的所有点权值减去KQ C:查询节点编号为C的权值 裸裸的树剖 阅读全文
posted @ 2016-04-10 20:54 Yangjiyuan 阅读(216) 评论(0) 推荐(0)
摘要:1.randomDescription 给定4个参数A0,N,c,p,你需要按下式构造A1~AN: A[i]=(A[i-1]2+c)mod p 之后,你需要求出A1~AN中,第K大的数值。Input 一行五个正整数A0,N,c,p,K。Output 一行一个整数,描述答案。Sample Input 阅读全文
posted @ 2016-04-06 22:31 Yangjiyuan 阅读(224) 评论(0) 推荐(0)
摘要:裸的树链剖分。 对于安装 查询和维护到根路径 对于卸载 查询和维护子树信息 一开始线段树add[]标记要全赋值为-1 阅读全文
posted @ 2016-03-29 22:18 Yangjiyuan 阅读(177) 评论(0) 推荐(0)
摘要:题意: I. CHANGE u t : 把结点u的权值改为t II. QMAX u v: 询问从点u到点v的路径上的节点的最大权值 III. QSUM u v: 询问从点u到点v的路径上的节点的权值和 树链剖分 siz[v]表示以v为根的子树的节点数 top[v]表示v所在的重链的顶端节点 fa[v 阅读全文
posted @ 2016-03-28 15:05 Yangjiyuan 阅读(168) 评论(0) 推荐(0)
摘要:siz[v]表示以v为根的子树的节点数 top[v]表示v所在的重链的顶端节点 fa[v]表示v的父亲 pos[v]表示v的父边标号 mx[v]表示v的子树中边的标号最大的那条边 参考:http://blog.sina.com.cn/s/blog_6974c8b20100zc61.html 题意: 阅读全文
posted @ 2016-03-28 11:56 Yangjiyuan 阅读(197) 评论(0) 推荐(0)