题意描述:
给出一棵n个结点的树, 有m个操作, 操作为将一条路径上的边权加一或询问某条边的边权
解法:
从题意上来看这是一道树上差分的题, 但是如果每次查询都进行一遍dfs将会导致TLE
这时就需要使用dfs序
用树状数组存储dfs序, 然后查询就从O(n)变为O(logn)
代码:
1 |
|
给出一棵n个结点的树, 有m个操作, 操作为将一条路径上的边权加一或询问某条边的边权
从题意上来看这是一道树上差分的题, 但是如果每次查询都进行一遍dfs将会导致TLE
这时就需要使用dfs序
用树状数组存储dfs序, 然后查询就从O(n)变为O(logn)
1 | #include <iostream> |