首页 > TAG信息列表 > P3178
洛谷-P3178 树上操作
树上操作 树链剖分模板 - 子树区间加和 考虑到树链剖分的时候,一颗子树内的 dfn 序一定是连续的一段区间,因此只要找到子树内最大的 dfn 序即可,也就是树链剖分 dfs 的时候回到当前结点时,记录一下当前分配 dfn 序分配到了哪个值 然后直接线段树区间加和即可 #include <iostream> #incP3178 [HAOI2015]树上操作
操作 1 :把某个节点 x 的点权增加 a 。 操作 2 :把某个节点 x 为根的子树中所有点的点权都增加 a 。 操作 3 :询问某个节点 x 到根的路径中所有点的点权和。 树剖板子 const int N=1e5+79; int a[N],b[N]; int n,m; struct graph{ int head[N],tot,next[N<<1],ver[N<<1]; inline vP3178 - 树上操作
没什么特殊的一道树链剖分板子题,可以作为树剖入门题 操作1单点修改即可 操作2和操作3为树链剖分基础操作 #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #include<cmath> #include<queue> using namespace std; #define lid (id << 1) #define洛谷 P3178 [HAOI2015]树上操作
P3178 [HAOI2015]树上操作 原题链接 Solution 树链剖分 树链剖分板子题,比板子还板子 关于树链剖分我就不多说了,如果又不会的话可以看我的博客 浅谈树链剖分 回归正题,我们发现题目只要求单点加,子树加,以及查询一点到根节点路径和。 单点加不就是区间加把左右端点改成那个点吗? 子树加