#2529. 动态树的第 2 大值
动态树的第 2 大值
Description
一棵有 个节点的树,节点编号为..。
每个节点都有一个权值。
有种类型的操作:
① ,从树中删除一条边 - ,然后添加一条新边 ;确保在添加新边后它仍然构成树;
② ,将节点 和 路径上所有节点包括 和 的权值都修改为 ;
③ ,将节点 和 包括 和 路径上所有节点的权值都增加 ;
④ ,查询节点 和 包括 和 路径上的第大权值,以及该权值在路径上出现的次数。
注意:这里是严格的第大权值。{, , , , }的严格第大权值是。
Format
Input
第行包含一个整数 ,表示测试用例数。
每个测试用例的第行都包含两个整数 和 、 ,表示节点数和操作数;
第行包含 个整数,表示节点的权值;
接下来的 -行,每行都包含两个整数 和 ,表示在节点 和 之间有一条边;
最后行描述操作。其中, , , , ,| | ,| |。
Output
对每个测试用例,都先单行输出“ #:”(表示测试用例编号);
对每个查询操作都输出两个值,即第大权值及其出现的次数。若路径上所有节点的权值都相同,则输出“ ”。
Samples
2
3 2
1 1 2
1 2
1 3
4 1 2
4 2 3
7 7
5 3 2 1 7 3 6
1 2
1 3
3 4
3 5
4 6
4 7
4 2 6
3 4 5 -1
4 5 7
1 3 4 2 4
4 3 6
2 3 6 5
4 3 6
Case #1:
ALL SAME
1 2
Case #2:
3 2
1 1
3 2
ALL SAME
来源
HDU5002