iefnah06

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

URL

https://codeforces.com/contest/1336/problem/F

解法

考虑枚举路径交的一个端点 \(v\),对 \(v\) 维护子树内向上的所有路径,在合并时计算贡献(大概就是根据当前点到要加入的路径 LCA 的距离与 \(K\) 的大小关系来算哪些集合的路径是合法的)。

注意两条路径的 LCA 重合时会算重,得特判一下。具体实现时可以对其中一边的链只算路径完全在这条链上的个数。

实现

https://ideone.com/l8PvN7

posted on 2020-04-17 16:37  iefnah06  阅读(354)  评论(0)    收藏  举报