摘要: 大概总结一下换根思路, 假设初始根为1, 换根后为$r$. 1, 单点修改 直接改即可, 不影响 2, 子树$x$修改或询问 (需要满足修改具有可减性) (1)若x=r, 对全部节点加 (3)若x不在树链1->r上, 直接加即可 (3)若x在树链1->r上且x!=r, 全部节点加, 再对x在树链1- 阅读全文
posted @ 2019-03-31 22:17 uid001 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 大意: n节点树, 每个点有权值, 三种操作: 1,换根. 2, lca(u,v)的子树权值全部增加x. 3, 查询子树权值和. 先不考虑换根, 考虑子树x加v的贡献 (1)对fa[x]到根的树链贡献为sz[x]*v; (2)对x子树内的点y贡献为sz[y]*v; 步骤(1)可以用单点更新子树求和实 阅读全文
posted @ 2019-03-31 18:07 uid001 阅读(145) 评论(0) 推荐(0) 编辑