#P15949. [JOI Final 2026] JOI 国的节日 3 / Festivals in JOI Kingdom 3

[JOI Final 2026] JOI 国的节日 3 / Festivals in JOI Kingdom 3

题目描述

JOI 国由 NN 座城市和 N1N-1 条高速公路组成。这些城市的编号为 11NN,高速公路的编号为 11N1N-1。通过穿过若干条高速公路,可以从任何一座城市到达任何其他城市。

每座城市都有一个热度,用一个非负整数表示。城市 ii1iN1 \leq i \leq N)的初始热度为 CiC_i。每条高速公路都有一个通行时间,用一个正整数表示。高速公路 jj1jN11 \leq j \leq N-1)连接着城市 AjA_j 和城市 BjB_j,其初始通行时间为 DjD_j

JOI 国的每座城市都有一个圣火盆。JOI 国保持着一个传统,即在节日里,各个城市会点燃它们的圣火盆,这些点火仪式标志着游行队伍从这些城市出发。

如果两座城市由一条高速公路直接相连,则城市 uu 与城市 vv相邻的。在某座城市点燃其圣火盆的准确瞬间,将有一支游行队伍从该城市出发前往其每个相邻的城市,所花费的时间等于对应高速公路的通行时间。准确地说,对于两个相邻的城市 vvuu,从城市 vv 出发的游行队伍在时间 t+dt + d 到达城市 uu,其中 tt 是城市 vv 的圣火盆被点燃的时间,dd 是连接城市 vvuu 的高速公路的通行时间。

有些城市在节日开始的瞬间就会点燃它们的圣火盆,而另一些城市则只有在节日气氛足够热烈后才会这样做。令时间 00 为节日的开始。对于热度为 cc 的城市 ii,城市 ii 点燃其圣火盆的时间按如下方式确定:

  • 如果 c=0c = 0,城市 ii 在时间 00 点燃其圣火盆。
  • 如果 c1c \geq 1,当从相邻城市到达的游行队伍数量至少达到 cc 时,城市 ii 就会点燃其圣火盆。如果这种情况永远没有发生,城市 ii 就永远不会点燃其圣火盆。

K 先生将在 JOI 国逗留。在他逗留期间,JOI 国将发生 QQ 个与其节日相关的事件。这些事件按照发生时间从早到晚编号为 11QQ

事件 kk1kQ1 \leq k \leq Q)是以下 33 种类型之一:

  • 类型 11:城市 VkV_k 的热度变为 XkX_k
  • 类型 22:高速公路 EkE_k 的通行时间变为 XkX_k
  • 类型 33:K 先生访问城市 VkV_k。假设一个节日在此刻开始,你必须确定城市 VkV_k 是否会点燃其圣火盆,如果会,计算出圣火盆被点燃的时间。

编写一个程序,在给定 JOI 国的结构、每座城市的热度、每条高速公路的通行时间以及事件详情的情况下,对于每个类型 33 的事件,确定 K 先生访问的城市何时点燃其圣火盆。

输入格式

从标准输入读取以下数据。

NN
A1 B1 D1A_1\ B_1\ D_1
\vdots
AN1 BN1 DN1A_{N-1}\ B_{N-1}\ D_{N-1}
C1C_1
\vdots
CNC_N
QQ
(Query 11)
\vdots
(Query QQ)

(Query kk) 表示事件 kk1kQ1 \leq k \leq Q)的详情。在 (Query kk) 中,写入了以空格分隔的整数。令 PkP_k 为第一个整数。PkP_k112233,表示事件 kk 的类型。那么 (Query kk) 的含义如下:

  • 如果 Pk=1P_k = 1,则后面还按此顺序写入了两个整数 Vk,XkV_k, X_k。这意味着城市 VkV_k 的热度变为了 XkX_k
  • 如果 Pk=2P_k = 2,则后面还按此顺序写入了两个整数 Ek,XkE_k, X_k。这意味着高速公路 EkE_k 的通行时间变为了 XkX_k
  • 如果 Pk=3P_k = 3,则后面还写入了一个整数 VkV_k。这意味着 K 先生访问了城市 VkV_k,并且假设一个节日在此刻开始,你必须确定城市 VkV_k 的圣火盆被点燃的时间。

输出格式

向标准输出输出,对于每个 Pk=3P_k = 3 的事件 kk1kQ1 \le k \le Q),按照 kk 递增的顺序,每行输出以下内容:

  • 如果 K 先生访问的城市会点燃其圣火盆,输出该圣火盆被点燃的时间。
  • 否则,输出 -1\texttt{-1}
7
1 2 30
2 3 30
1 4 70
2 5 20
1 6 10
2 7 50
2
3
0
0
0
1
0
8
3 1
1 6 0
3 1
2 6 10
3 1
1 2 7
1 6 7
3 1
80
70
60
-1
6
1 2 10
1 3 30
1 4 50
1 5 30
1 6 10
2
0
0
0
0
1
10
3 1
2 3 20
3 1
1 6 0
3 1
1 1 4
3 1
1 2 6
1 3 6
3 1
30
20
10
30
-1

提示

样例 1

在事件 11 考虑的节日中,各城市点燃圣火盆的时间如下:

  • 在时间 00,城市 3,4,5,73, 4, 5, 7 点燃了它们的圣火盆。
  • 在时间 5050,城市 22 点燃了它的圣火盆。到那时,来自城市 3,5,73, 5, 7 的游行队伍已经到达了城市 22
  • 在时间 8080,城市 11 点燃了它的圣火盆。到那时,来自城市 2,42, 4 的游行队伍已经到达了城市 11
  • 在时间 9090,城市 66 点燃了它的圣火盆。到那时,来自城市 11 的游行队伍已经到达了城市 66。 由于城市 11 会在时间 8080 点燃其圣火盆,因此输出 8080

在事件 33 考虑的节日中,各城市点燃圣火盆的时间如下:

  • 在时间 00,城市 3,4,5,6,73, 4, 5, 6, 7 点燃了它们的圣火盆。
  • 在时间 5050,城市 22 点燃了它的圣火盆。到那时,来自城市 3,5,73, 5, 7 的游行队伍已经到达了城市 22
  • 在时间 7070,城市 11 点燃了它的圣火盆。到那时,来自城市 4,64, 6 的游行队伍已经到达了城市 11。 由于城市 11 会在时间 7070 点燃其圣火盆,因此输出 7070

在事件 55 考虑的节日中,各城市点燃圣火盆的时间如下:

  • 在时间 00,城市 3,4,5,6,73, 4, 5, 6, 7 点燃了它们的圣火盆。
  • 在时间 3030,城市 22 点燃了它的圣火盆。到那时,来自城市 3,5,73, 5, 7 的游行队伍已经到达了城市 22
  • 在时间 6060,城市 11 点燃了它的圣火盆。到那时,来自城市 2,62, 6 的游行队伍已经到达了城市 11。 由于城市 11 会在时间 6060 点燃其圣火盆,因此输出 6060

在事件 88 考虑的节日中,各城市点燃圣火盆的时间如下:

  • 在时间 00,城市 3,4,5,73, 4, 5, 7 点燃了它们的圣火盆。 城市 1,2,61, 2, 6 永远不会点燃它们的圣火盆。由于城市 11 永远不会点燃其圣火盆,因此输出 1-1。 此样例输入满足子任务 1,3,5,71, 3, 5, 7 的约束条件。

样例 2

此样例输入满足子任务 1,2,5,71, 2, 5, 7 的约束条件。

约束条件

  • 2N1500002 \le N \le 150000
  • 0CiN0 \le C_i \le N (1iN1 \le i \le N)。
  • 1Aj<BjN1 \le A_j < B_j \le N (1jN11 \le j \le N-1)。
  • 1Dj10000001 \le D_j \le 1000000 (1jN11 \le j \le N-1)。
  • 通过穿过若干条高速公路,可以从任何一座城市到达任何其他城市。
  • 1Q1500001 \le Q \le 150000
  • 如果 Pk=1P_k = 1,则有 1VkN1 \le V_k \le N, 0XkN0 \le X_k \le N (1kQ1 \le k \le Q)。
  • 如果 Pk=2P_k = 2,则有 1EkN11 \le E_k \le N-1, 1Xk10000001 \le X_k \le 1000000 (1kQ1 \le k \le Q)。
  • 如果 Pk=3P_k = 3,则有 1VkN1 \le V_k \le N (1kQ1 \le k \le Q)。
  • 给定的值均为整数。

子任务

  1. (6 分) N2000N \le 2000, Q2000Q \le 2000
  2. (7 分) Aj=1A_j = 1, Bj=j+1B_j = j+1 (1jN11 \le j \le N-1)。如果 Pk=3P_k = 3,则有 Vk=1V_k = 1 (1kQ1 \le k \le Q)。
  3. (14 分) N1N-1 能被 33 整除。Aj=((j1)modN13)+1A_j = ((j-1) \mod \frac{N-1}{3}) + 1, Bj=j+1B_j = j+1 (1jN11 \le j \le N-1)。如果 Pk=3P_k = 3,则有 Vk=1V_k = 1 (1kQ1 \le k \le Q)。
  4. (25 分) Pk1P_k \ne 1。如果 Pk=3P_k = 3,则有 Vk=1V_k = 1 (1kQ1 \le k \le Q)。
  5. (12 分) 如果 Pk=3P_k = 3,则有 Vk=1V_k = 1 (1kQ1 \le k \le Q)。
  6. (22 分) Pk1P_k \ne 1 (1kQ1 \le k \le Q)。
  7. (14 分) 无附加约束条件。