随笔分类 - 树论——树链剖分
摘要:【传送门:51nod-1462】 简要题意: 给出一棵n个点的树,每个点有两个权值v,t 有Q个操作,有两种操作: 1.将x到根上的路径上的点的v值都加上d 2.将x到根上的路径上的点的t值都加上每个点的v值*d 最后求出所有点的t值 题解: 显然可以直接树链剖分做,不过lazy标记下放真麻烦,因为
阅读全文
摘要:【传送门:BZOJ4196】 简要题意: 有n个软件,每个软件有一个依赖的软件(除了第一个软件),要想安装一个软件就必须要安装它所依赖的软件 有m种操作,有一种是安装某个软件,另一种是删除某个软件,如果删除了一个软件,那么所有直接或间接依赖它的软件都要删除 求出每种操作改变了多少个软件的状态 题解:
阅读全文
摘要:【传送门:BZOJ3626】 简要题意: 给出一棵树,设dep[i]为每个点与根节点的距离+1, 有m个询问,每个询问输入l,r,z 求出 题解: 读题,实际上dep[i]就表示i到根有多少个节点 那么如果要求dep[LCA(i,j)]的话,
阅读全文
摘要:【传送门:BZOJ4034】 简要题意: 给出一棵有n个有权节点的树且根节点为1,有m个操作,3种操作: 1 x a将x点的权值增加a 2 x a将x的子树的所有节点增加a 3 x求出x到根节点的路径上的所有点的权值和 题解: 裸树链剖分,只要在处理轻重链的时候记录x子树的最小的编号和最大的编号即可
阅读全文
摘要:【传送门:BZOJ2243】 简要题意: 给出一棵无根树,每个节点有颜色,有两种操作: 1.Q a b求出a到b的路径上的颜色段数 2.C a b c将a到b路径上的所有点都变成c的颜色 题解: 树链剖分,很裸 每个区间记录左端点的颜色,右端点的颜色,区间的颜色段数 合并维护区间时,如果左子区间的右
阅读全文
摘要:【传送门:BZOJ4551】 简要题意: 给出一棵树,根节点为1,一开始根节点打了标记,给出q个操作,有两种操作: 第一种输入Q x,求出离x最近的打了标记的祖先 第二种输入C x,将x点打标记 题解: 树链剖分水题 首先因为重链上的点的新编号是连续的,所以当我们求离x最近的打了标记的祖先时,就找x
阅读全文
摘要:【传送门:BZOJ1103】 简要题意: 给出一棵树,树上的根节点为1,一开始所有的边的边权都为1,给出两种操作: 1.M x求出x点到根节点的边权和 2.A x y表示x到y的这条边的边权变为0 题解: 树链剖分裸题 把题意简要提取之后就变成裸题了。。 没什么好讲 参考代码:
阅读全文
摘要:【传送门:BZOJ3676】 简要题意: 给出一棵树,树上的边有权值(可正可负),对这棵树有5种操作: 1.SUM x y求出x点到y点所经过的边权和 2.MAX x y求出x点到y点所经过的边的最大边权 3.MIN x y求出x点到y点所经过的边的最小边权 4.C x y将输入的第x条边的边权改为
阅读全文