P9476 [_-0 B] 地铁
人类智慧题!!!
假如没有地铁,这题就是一个非常典型的计算贡献的题。我们对每一条边看他左右子树中通过的客流量多少,对于一个边权为
现在有了地铁,使答案减少了
假设一个人从
这个式子中的
这样看起来就好多了,因为
因此我们考虑每个边和每个点贡献的次数
对于一条边,计算同上,对
对于一个点,他把树分成了三个部分,如图,他的贡献为
因此我们考虑树形
设
我们发现转移分两种情况:
-
链的另一端就是
点
此时 -
链的另一端在
点的子树内,其中 是 的直接儿子
此时
在求完
我们设地铁两个端点的
-
如果
是端点,则 -
如果
不是端点,则
注意,这里读入的
对于第一种情况是很好考虑的,直接对于每个点更新一边
但对于第二种情况,我们直接枚举
我们再次考虑魔改一下式子:
这长的想什么?像斜率优化!
我们可以把他们按照
最终复杂度
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?