#HK3966. 「JOISC 2023 Day1」两种货币

「JOISC 2023 Day1」两种货币

题目描述

题目译自 JOISC 2023 Day1 T1 「ふたつの通貨 / Two Currencies

JOI 国有 NN 个城市,从 11NN 编号,有 N1N-1 条道路,从 11N1N-1 编号。路 i (1iN1)i\ (1\le i\le N-1) 双向连接城市 AiA_iBiB_i。从任意城市出发,经过一些道路总可以到达任意其他城市。

在 JOI 国的某些路上有收费站。有 MM 个收费站,编号为 11MM。收费站 j (1jM)j\ (1\le j\le M) 位于路 PjP_j 上。为了经过收费站,你需要要么付一枚金币,要么付 CjC_j 枚银币。

JOI 国中有 QQ 位公民,编号为 11QQ。公民 k (1kQ)k\ (1\le k\le Q)XkX_k 枚金币和 YkY_k 枚银币,并且想从城市 SkS_k 前往城市 TkT_k。因为金币十分地珍贵,因此所有公民都希望尽可能多地保留金币。

给定城市,道路,收费站和 JOI 国公民的信息,写一个程序,对于每个 k (1kQ)k\ (1\le k\le Q),确定对于公民 kk,从 SkS_k 前往 TkT_k 是否可行,如果可行,计算公民 kk 最多可以留下多少金币。

输入格式

第一行三个整数 N,M,QN,M,Q

接下来 N1N-1 行,每行两个整数 Ai,BiA_i,B_i

接下来 MM 行,每行两个整数 Pj,CjP_j,C_j

接下来 QQ 行,每行四个整数 Sk,Tk,Xk,YkS_k,T_k,X_k,Y_k

输出格式

输出 QQ 行,第 k (1kQ)k\ (1\le k\le Q) 行表示如果公民 kk 可以从 SkS_k 前往 TkT_k,公民 kk 最多可以留下的金币数量,否则输出 1-1

5 4 3
1 2
1 3
2 4
2 5
2 9
2 4
3 5
4 7
3 4 2 11
5 3 4 5
2 3 1 1

1
2
-1

公民 11 可以按如下方式从城市 33 前往城市 44。在旅行过后,公民 11 可以留下 11 枚金币。

  1. 公民 11 通过路 22 从从城市 33 前往城市 11。路 22 上有收费站 1,21,2。公民 11 在收费站 11 处支付 11 枚金币并通过它,在收费站 22 支付 44 枚银币并通过它。在这之后,公民 1111 枚金币和 77 枚银币。
  2. 公民 11 通过路 11 从从城市 11 前往城市 22。路 11 上没有收费站,通过后公民 1111 枚金币和 77 枚银币。
  3. 公民 11 通过路 33 从从城市 22 前往城市 44。路 33 上有收费站 33。公民 11 在收费站 33 处支付 55 枚银币并通过它。在这之后,公民 1111 枚金币和 22 枚银币。

因为公民 11 不可能在旅行之后保留 22 枚或以上金币,因此第一行输出 11

公民 22 可以按如下方式从城市 55 前往城市 33。在旅行过后,公民 22 可以留下 22 枚金币。

  1. 公民 22 通过路 44 从从城市 55 前往城市 22。路 44 上有收费站 44。公民 22 在收费站 44 处支付 11 枚金币并通过它。在这之后,公民 2233 枚金币和 55 枚银币。
  2. 公民 22 通过路 11 从从城市 22 前往城市 11。路 11 上没有收费站,通过后公民 2233 枚金币和 55 枚银币。
  3. 公民 22 通过路 22 从从城市 11 前往城市 33。路 22 上有收费站 1,21,2。公民 22 在收费站 11 处支付 11 枚金币并通过它,在收费站 22 支付 44 枚银币并通过它。在这之后,公民 2222 枚金币和 11 枚银币。

因为公民 22 不可能在旅行之后保留 33 枚或以上金币,因此第二行输出 22

因为公民 33 不可能从城市 22 前往城市 33,因此第三行输出 1-1

这组样例满足子任务 1,41,4 的限制。

10 7 9
1 8
6 3
5 9
7 9
3 1
3 4
10 1
2 6
5 6
9 4
7 4
7 4
2 4
7 4
7 4
1 4
8 6 5 3
3 9 8 0
4 7 6 15
7 4 9 3
6 4 8 0
9 10 5 16
5 3 2 4
2 8 4 3
6 1 3 3

3
6
6
7
7
3
1
2
2

这组样例满足子任务 1,2,41,2,4 的限制。

8 7 11
1 2
2 3
3 4
4 5
5 6
6 7
7 8
4 4
3 7
2 10
5 2
4 1
4 4
5 6
6 3 7 69
7 1 5 55
3 1 6 8
8 2 5 45
4 6 4 45
6 1 3 33
2 1 0 19
3 7 2 31
7 1 2 31
7 2 4 58
8 3 5 63

7
5
5
5
4
2
0
2
1
4
5

这组样例满足子任务 1,3,41,3,4 的限制。

8 7 11
1 8
1 4
3 1
3 6
6 7
2 1
5 2
5 5
5 8
4 7
6 6
4 1
6 4
1 7
4 7 2 18
2 4 5 1
4 2 1 32
1 5 7 21
2 5 0 50
8 4 4 33
1 7 6 16
4 8 7 18
1 2 8 13
5 4 10 42
7 1 6 40

1
3
1
7
0
4
5
7
8
10
6

这组样例满足子任务 1,41,4 的限制。

数据范围与提示

对于所有输入数据,满足:

  • 2N1052\le N\le 10^5
  • 1M,Q1051\le M,Q\le 10^5
  • 1Ai,Bi,Sk,TkN,SkTk1\le A_i,B_i,S_k,T_k\le N,S_k\neq T_k
  • 从任意城市出发,经过一些道路总可以到达任意其他城市
  • 1PjN11\le P_j\le N-1
  • 1Cj1091\le C_j\le 10^9
  • 0Xk109,0Yk10180\le X_k\le 10^9,0\le Y_k\le 10^{18}

详细子任务及附加限制如下表所示。

子任务编号 附加限制 分值
11 N,M,Q2 000N,M,Q\le 2\ 000 1010
22 C1=C2==CMC_1=C_2=\ldots=C_M 2828
33 Ai=i,Bi=i+1 (1iN1)A_i=i,B_i=i+1\ (1\le i\le N-1) 3030
44 无附加限制 3232