描述
总共有n个节点的树,每个节点都有一个权重,我们可以假设它是整数。我们在这些树上有一些操作:
- Link(x,y) - 链接两个节点x和y,我们可以假设之前x和y之间没有边缘,我们可以假设在添加edge(x,y)之后,Graph仍然是一棵树
- 剪切(x,y) - 擦除x和y之间的边缘,我们可以假设之前在(x,y)之间存在边缘。
- QueryMIN_Path(x,y) - 获取路径x-> y中的最小权重,输入数据保证x和y之间有一条路径。
- QueryMIN_Subtree(x) - 在x的子树中记录最小权重
- Modify_Path(x,y,z) - 添加z到路径x中的每个节点 - > y,输入数据保证x和y之间有一条路径。
- Modify_Subtree(x,z) - 添加z到子树x
中的每个节点
- Change_root(x) - 更改包含x的树的根,x成为根
醇>
我们可以假设所有操作都是正确的。
目标
我需要在分摊的时间内按操作在O(log(n))中运行所有这些操作。