
树链剖分
Eirlys_North
这个作者很懒,什么都没留下…
展开
-
bzoj 1036 树链剖分模板
题意:一棵n个节点的树,每个点都有一个权值w,三种操作:1、CHANGE x y 把x节点的权值改为y2、QMAX x y 询问x到y路径上节点的最大权值3、QSUM x y 询问x到y路径的节点和,包括x和y本身树链剖分裸模板..简单介绍下树链剖分一般用来维护两个点之间路径上各点(边)权值的最大、最小,权值和并且支持在线更改任意节点(边)的权值(把链剖出来挂在线段原创 2017-02-15 18:20:00 · 409 阅读 · 0 评论 -
bzoj 2836 树链剖分
题意:对一棵n个节点且每个节点初始值都为0的树,进行两个操作:1、Add x y z 表示x到y的路径上的点的点权都+z2、Query x 表示询问以x为根的子树的点权和树链剖分裸题,mdzz,8A....对于修改x到y的路径上的点的点权,注意x到y并不是一段连续的区间,需要跳到同一条链上才能用线段树进行区间修改对于查询,由于以x为根的子树在线段树中是一段连续的区间[num[x原创 2017-02-16 07:32:50 · 449 阅读 · 0 评论 -
bzoj 4034 树链剖分模板
题意:有一棵点数为 N 的树,以点 1 为根,且树点有边权。然后有 M 个操作,分为三种:操作 1 :把某个节点 x 的点权增加 a 。操作 2 :把某个节点 x 为根的子树中所有点的点权都增加 a 。操作 3 :询问某个节点 x 到根的路径中所有点的点权和。mdzz,居然没有1A,把点权和边权的弄混了...点权的最后更新的时候是可以num[x]=num[y]的原创 2017-02-26 21:58:57 · 348 阅读 · 0 评论 -
bzoj 3626 树链剖分+离线处理
题意:给出一个n个节点的有根树(编号为0到n-1,根节点为0)。一个点的深度定义为这个节点到根的距离+1。q个询问,每个询问给出区间[l,r]和z,求在[l,r]区间内的每个节点i与z的最近公共祖先的深度之和好题...orz并不会写题解...const mo=201314;type rec=record l,r:原创 2017-02-27 09:35:05 · 390 阅读 · 0 评论 -
bzoj 3631 树链剖分+差分
题意:n个节点的树,给出访问顺序,每经过一个点该点权值加1(x->y->z,y只需要加一次),初始为0.求最后每个点经过总次数显然树剖裸题区间加1,单点查询,所以完全没有必要写线段树,一开始naive的想用差分的树状数组代替线段树,后来一想都差分了还树状数组个什么鬼,直接差分一下,然后算一下前缀和即可如果当前点是所有访问的起点,直接输出sum[i],其他点均-1var原创 2017-03-26 23:12:12 · 452 阅读 · 0 评论