10.9 考试总结

2321

sb 题,质因数分解后对于指数讨论即可。

2324

考场想到了但是树上 \(k\) 级祖先写挂了。/kk

对于一组询问 \((x,y)\),可以分成两种情况:有祖系关系与否。

考虑如何统计答案。

维护 \(dp_x,up_x\) 表示子树内/外的点到点 \(x\) 的路径权值之和。

对于第一种情况,答案总计是有 \(sz_x \times sz_y\) (数量级)条路径的。那么除开路径 \((x,y)\) 的答案是 \(dp_x \times dp_y\) 的。由于乘法分配律的优秀性质,对于这些路径是要乘上询问点对的路权的。

使用 LCA 快速算路径长度,快速幂算路权即可。

对于第二种情况,相当于是将第一种情况的一个端点转换到子树外了。这个要注意一点细节。对于深度较大的点求它的 \(dis(x, y) - 1\) 级祖先,容斥维护答案即可。

时间复杂度 \(O(n \log n)\),puck 老年机直接给我 T 飞!

所以还有一个线性做法。

\(up_i\) 的定义换一下:不含儿子子树的路径权值之和。

于是就不需要 \(O(\log n)\) 的树上 \(k\) 级祖先了。

离线 tarjan LCA 可以做到 \(O(n)\)

总时间复杂度 \(O(n)\)

还是没有通过图灵测试,资材。

posted @ 2024-10-09 15:49  end_switch  阅读(7)  评论(0编辑  收藏  举报