洛谷P1501_动态树(Link Cut Tree)
2022-07-17 13:03 作者:Clayton_Zhou | 我要投稿
一棵 n 个点的树,每个点的初始权值为 1。
对于这棵树有 q 个操作,每个操作为以下四种操作之一:
+ u v c
:将 u 到 v 的路径上的点的权值都加上自然数 c;- u1 v1 u2 v2
:将树中原有的边 (u1,v1) 删除,加入一条新边 (u2,v2),保证操作完之后仍然是一棵树;* u v c:将 u 到 v 的路径上的点的权值都乘上自然数 c;
/ u v :询问 u 到 v 的路径上的点的权值和,将答案对 51061 取模。
因为树链剖分并不能维护动态连边, 所以是一个典型LCT模板题,几乎使用了 LCT的所有操作。
程序中有 一段演示split函数功能的代码。