100 #A2026I. 【KRUSKAL2026】Same Frequency Echo

    ID: 229 Type: Default 6000ms 256MiB Tried: 65 Accepted: 3 Difficulty: 9 Uploaded By: Tags>数据结构KRUSKAL2026树离线算法虚树线段树合并扫描线支配对

【KRUSKAL2026】Same Frequency Echo

同频回声

题目描述

给定一棵以节点 11 为根、包含 nn 个节点的带权树[1]。

节点 ii 具有:

  • 频段 cic_i;
  • 发射时刻 aia_i。

每个频段 cc 具有重要度 wcw_c。

对于两个使用相同频段的不同节点 u,vu,v,定义它们的同步代价为

D(u,v)=∣au−av∣+dist⁡(u,v),D(u,v)=|a_u-a_v|+\operatorname{dist}(u,v),

其中 dist⁡(u,v)\operatorname{dist}(u,v) 表示 u,vu,v 之间简单路径[2]上的边权之和。

一次询问给出节点 xx 和非负整数 KK。

称频段 cc 在 xx 的管辖区域中产生了回声,当且仅当存在两个不同节点

u,v∈subtree⁡(x)u,v\in \operatorname{subtree}(x)

满足

cu=cv=c,D(u,v)≤K.c_u=c_v=c, D(u,v)\le K.

其中 subtree⁡(x)\operatorname{subtree}(x) 表示以 xx 为根的子树[3]。

对于每次询问,求所有产生回声的频段的重要度之和,即

$$\sum_{c=1}^{m}w_c \left[ \exists u\ne v\in\operatorname{subtree}(x),\ c_u=c_v=c,\ D(u,v)\le K \right].$$

方括号表示 Iverson bracket:条件成立时取 11,否则取 00。

输入格式

第一行包含三个整数 $n,m,q(1\le n\le10^6,\ 1\le m\le10^5,\ 1\le q\le10^6)$,分别表示节点数、频段数和询问数。

第二行包含 mm 个整数 w1,w2,…,wm(0≤wc≤109),w_1,w_2,\ldots,w_m(0\le w_c\le10^9), 表示各个频段的重要度。

第三行包含 nn 个整数 c1,c2,…,cn(1≤ci≤m),c_1,c_2,\ldots,c_n(1\le c_i\le m), 表示各节点使用的频段。

第四行包含 nn 个整数 a1,a2,…,an(0≤ai≤109),a_1,a_2,\ldots,a_n(0\le a_i\le10^9), 表示各节点的发射时刻。

接下来 n−1n-1 行,每行包含三个整数 u,v,d(1≤u,v≤n, 0≤d≤109)u,v,d(1\le u,v\le n,\ 0\le d\le10^9),表示节点 u,vu,v 之间存在一条边权为 dd 的无向边。

接下来 qq 行,每行包含两个整数 x,K(1≤x≤n, 0≤K≤4×1018)x,K(1\le x\le n,\ 0\le K\le4\times10^{18}),表示一次询问。

输出格式

对于每次询问,输出一行一个整数,表示答案。

样例

7 3 5
5 7 11
1 2 1 3 2 1 3
10 4 13 8 9 20 7
1 2 2
1 3 3
2 4 4
2 5 1
3 6 2
3 7 5
1 5
1 6
2 6
3 9
1 15
0
12
7
5
23

样例解释

同频节点之间的同步代价如下:

  • 频段 11 的节点为 1,3,61,3,6:
    • D(1,3)=∣10−13∣+3=6D(1,3)=|10-13|+3=6;
    • D(1,6)=∣10−20∣+5=15D(1,6)=|10-20|+5=15;
    • D(3,6)=∣13−20∣+2=9D(3,6)=|13-20|+2=9。
  • 频段 22 的节点为 2,52,5:
    • D(2,5)=∣4−9∣+1=6D(2,5)=|4-9|+1=6。
  • 频段 33 的节点为 4,74,7:
    • D(4,7)=∣8−7∣+14=15D(4,7)=|8-7|+14=15。

因此:

  • 询问 (1,5)(1,5) 中没有频段产生回声,答案为 00;
  • 询问 (1,6)(1,6) 中频段 1,21,2 产生回声,答案为 5+7=125+7=12;
  • 询问 (2,6)(2,6) 中只有频段 22 产生回声,答案为 77;
  • 询问 (3,9)(3,9) 中只有频段 11 产生回声,答案为 55;
  • 询问 (1,15)(1,15) 中三个频段均产生回声,答案为 5+7+11=235+7+11=23。

  1. 一棵有 nn 个节点的树可以表示为 T(V,E)T(V, E),其中 ∣V∣=n,∣E∣=n−1|V| = n, |E| = n - 1,且 E⊆{{u,v}∣u,v∈V}E \subseteq\{\{u, v\} | u, v \in V\},且对于所有的 u,v∈V,u≠vu, v \in V, u \neq v,存在 u=p0,p1,…,pk=vu = p_0, p_1, \dots, p_k = v 且 {pi−1,pi}∈E\{p_{i - 1}, p_i\} \in E 对所有的 i=1,2,…,ki = 1, 2, \dots, k 成立。其中,VV 中的元素称为顶点,EE 中的元素称为边。节点 uu 和节点 vv 相邻当且仅当 {u,v}∈E\{u, v\} \in E。 ↩︎

  2. 指的是 u=p0,…,pk=vu = p_0, \dots, p_k = v,且 ∀i≠j,pi≠pj\forall i \neq j, p_i \neq p_j,且 {pi−1,pi}∈E\{p_{i - 1}, p_i\} \in E 对 ∀i=1,2,…,k\forall i = 1, 2, \dots, k 成立。 ↩︎

  3. vv 在 uu 的子树中当且仅当 uu 在根到 vv 的简单路径上。 ↩︎