B. *【动态树LCT】动态树入门3️⃣

    传统题 4000ms 32MiB

*【动态树LCT】动态树入门3️⃣

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

数据已更新2019.7.17

【题意】

一开始给出一棵 nn 个点 n1n-1 条无向边的树,每个点的权值 wiw_i
有四种操作:

  • 1 u v :在点 u 和点 v 之间建一条边。
  • 2 u v :摧毁点 u 到点 v 之间的边。
  • 3 w u v :将点 u 和点 v 之间路径上的点(包括u,v),权值增加 w(0w3000)w (0 \le w \le 3000)
  • 4 u v :询问点 u 到点 v 之间路径上的点(包括u,v),权值最大值。

当操作违法时(询问一中u,v已经连通,询问二中u,v没有直接连边或不连通,三四中u,v不连通,一二操作u==v)不进行操作并输出-1。

【输入格式】

第一行一个正整数 n (1n3×105)n \ (1 \le n \le 3 \times 10^5)
下来 n1n-1 行,每行两个正整数 u,vu,v,代表 uuvv 之间有一条边。
下来 nn 个整数 wi(0wi3000)w_i (0 \le w_i \le 3000)
下一行一个正整数 m (1m3×105)m \ (1 \le m \le 3 \times 10^5)。 以下 mm 行,每行表示一个操作。

所有数据不爆int

【输出格式】

对每个4操作,输出点u到点v之间路径上的点(包括u,v),权值最大值。同时对于违法情况输出-1。

5
1 2
2 4
2 5
1 3
1 2 3 4 5
6
4 2 3
2 1 2
4 2 3
1 3 5
3 2 1 4
4 1 4
3
-1
7

【提示】

利用find_root判断违法。最值统计方式与翻转方式相仿,不过记得是让儿子的标记加上自己的标记!

初中组20260113(动态树LCT)

未参加
状态
已结束
规则
乐多
题目
3
开始于
2026-1-13 12:15
结束于
2026-1-13 13:15
持续时间
1 小时
主持人
参赛人数
10