第30661题 单选题
在根为1的无向树中,要对u到v的简单路径上所有点的权值均加k,以下哪种是树上点差分的正确操作?

现有一棵以1为根的无向树,我们需要对u和v之间简单路径上的所有点的权值统一加k。约定diff为点差分数组,lca(u,v)表示u和v的最近公共祖先,fa[x]表示节点x的父节点,根节点1的父节点视为不存在(fa[1]=0,diff[0]的修改不影响最终统计结果)。

A

diff[u] += kdiff[v] += kdiff[lca(u, v)] -= kdiff[fa[lca(u, v)]] -= k

B

diff[u] += kdiff[v] += kdiff[lca(u, v)] -= 2*k

C

diff[u] += kdiff[v] += kdiff[fa[lca(u, v)]] -= 2*k

D

diff[u] += kdiff[v] -= kdiff[lca(u, v)] += kdiff[fa[lca(u, v)]] -= k

程序运行统计
暂无判题统计
提交0次 正确率0.00%
答案解析