蒟蒻我差点把简单问题复杂化QwQ。
传送门
题解
这两天刚做了几道树剖题。
害得我这题一上来就像码树剖。
其实完全没必要。
由于修改操作只有将一整条路劲上的点都加1,所以直接树上差分就可以了。
设修改的路径的两个端点分别为$a,b$,那么只要让a和b的权值加1,LCA(a,b)和它的父亲的权值分别减1。然后对于任意一个节点,它整个子树的权值加和便是该节点真正的权值。
然后注意一下细节即可。
代码
1 |
|
蒟蒻我差点把简单问题复杂化QwQ。
这两天刚做了几道树剖题。
害得我这题一上来就像码树剖。
其实完全没必要。
由于修改操作只有将一整条路劲上的点都加1,所以直接树上差分就可以了。
设修改的路径的两个端点分别为$a,b$,那么只要让a和b的权值加1,LCA(a,b)和它的父亲的权值分别减1。然后对于任意一个节点,它整个子树的权值加和便是该节点真正的权值。
然后注意一下细节即可。
1 | #include<cstdio> |