【题解】[NOIP2016 提高组] 天天爱跑步
作者:互联网
考虑 a 到 b ,c = lca(a, b) ,那么如果对观察员 u 产生贡献:
如果 u 在 a->c 上,则 \(time[a]+dep[a]-dep[u] = w[u]\) ,即 \(time[a]+dep[a] = w[u]+dep[u]\) ,其中 \(time[a]=0\)
如果 u 在 c->b 上,则同理得 \(time[b]-dep[b] = w[u]-dep[u]\) ,其中 \(time[b] = dep[a]-dep[c]+dep[b]-dep[c]\)
分别计算两种情况的贡献,用差分和线段树合并,就做完了
智商不够,数据结构来凑.jpg
标签:NOIP2016,dep,题解,天天,跑步,time 来源: https://www.cnblogs.com/zhyh/p/15055308.html