CF1749F Distance to the Path
题目描述
给定一棵包含 $n$ 个顶点的树。初始时,每个顶点的值为 $0$。
你需要进行 $m$ 次两种类型的操作:
1. 给定一个顶点编号 $v$,输出顶点 $v$ 当前的值。
2. 给定两个顶点编号 $u$ 和 $v$,以及两个数 $k$ 和 $d$($d \le 20$)。你需要将每个距离从该顶点到 $u$ 到 $v$ 的路径的距离不超过 $d$ 的顶点的值加上 $k$。
两个顶点 $x$ 和 $y$ 之间的距离定义为从 $x$ 到 $y$ 的路径上的边数。例如,$x$ 到 $x$ 的距离为 $0$。
顶点 $v$ 到从 $x$ 到 $y$ 的某条路径的距离,定义为 $v$ 到该路径上任意一个顶点的距离的最小值。
输入格式
第一行包含一个整数 $n$($2 \le n \le 2 \times 10^5$),表示树的顶点数。
接下来 $n-1$ 行,每行两个整数 $u$ 和 $v$($1 \le u, v \le n$,$u \neq v$),表示树中的一条边。保证给定的边构成一棵树。
接下来一行包含一个整数 $m$($1 \le m \le 2 \times 10^5$),表示操作次数。
接下来 $m$ 行,每行表示一次操作,格式如下:
- $1\ v$($1 \le v \le n$):第一种操作,查询顶点 $v$ 的当前值;
- $2\ u\ v\ k\ d$($1 \le u, v \le n$,$1 \le k \le 1000$,$0 \le d \le 20$):第二种操作。
输入保证至少有一次第一种操作。
输出格式
对于每个第一种操作,输出对应顶点的当前值。
说明/提示
第一组样例中的树结构如下:

部分操作说明:
- “$2\ 4\ 5\ 10\ 2$”:受影响的顶点为 $\{4, 2, 5, 1, 3\}$;
- “$2\ 1\ 1\ 10\ 20$” 和 “$2\ 6\ 6\ 10\ 20$”:所有顶点都受影响,因为对于任意顶点,到 $1$(或 $6$)的距离都小于 $20$;
- “$2\ 3\ 2\ 10\ 0$”:受影响的顶点为 $\{3, 1, 2\}$;
- “$2\ 5\ 2\ 10\ 1$”:受影响的顶点为 $\{5, 2, 4, 1\}$。
由 ChatGPT 4.1 翻译