URL
https://codeforces.com/contest/1336/problem/F
解法
考虑枚举路径交的一个端点 \(v\),对 \(v\) 维护子树内向上的所有路径,在合并时计算贡献(大概就是根据当前点到要加入的路径 LCA 的距离与 \(K\) 的大小关系来算哪些集合的路径是合法的)。
注意两条路径的 LCA 重合时会算重,得特判一下。具体实现时可以对其中一边的链只算路径完全在这条链上的个数。
https://codeforces.com/contest/1336/problem/F
考虑枚举路径交的一个端点 \(v\),对 \(v\) 维护子树内向上的所有路径,在合并时计算贡献(大概就是根据当前点到要加入的路径 LCA 的距离与 \(K\) 的大小关系来算哪些集合的路径是合法的)。
注意两条路径的 LCA 重合时会算重,得特判一下。具体实现时可以对其中一边的链只算路径完全在这条链上的个数。