其他分享
首页 > 其他分享> > 【题解】[NOIP2016 提高组] 天天爱跑步

【题解】[NOIP2016 提高组] 天天爱跑步

作者:互联网

P1600 [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