树上差分

来源:互联网 发布:win10软件小助手 编辑:程序博客网 时间:2024/05/14 11:43

1.给你一些路径,找出被所有路径都覆盖的边(BZOJ4326)

思路: 将所有路径的起点、终点权值加1,起点终点的lca权值减2,dfs序累加。
最终权值为路径数的点到其父亲的边为所求边。


2.给你一些路径,每条路径(u,v)上的每个点权值增加1,求各个点的权值(BZOJ3631)

(给你一些路径,求树上每个结点被路径覆盖的次数)

思路:将所有路径的起点、终点权值加1,起点终点的lca权值减1,lca的父亲权值减1,dfs序累加。

原创粉丝点击