AT_nupc2024_f Labeled Tree Distance

题目描述

给定一棵有 $N$ 个顶点的树 $T$。第 $i$ 条边连接顶点 $u_i$ 和 $v_i$。最开始时,顶点 $i$ 被涂成颜色 $A_i$。接下来给出 $Q$ 个操作,请依次处理每个操作。操作有以下两种类型之一: - `1 k x`:将顶点 $k$ 涂成颜色 $x$。 - `2 y`:输出被颜色 $y$ 涂色的任意两个顶点之间的距离的最大值。 这里,两个顶点 $(u, v)$ 的距离指的是以 $u$ 和 $v$ 为端点的路径上包含的边的数量。

输入格式

输入以如下格式从标准输入读入。 > $N$ > $u_1$ $v_1$ > $u_2$ $v_2$ > $\vdots$ > $u_{N-1}$ $v_{N-1}$ > $A_1\ A_2\ \ldots\ A_N$ > $Q$ > $\mathrm{query}_1$ > $\mathrm{query}_2$ > $\vdots$ > $\mathrm{query}_Q$ 其中,$\mathrm{query}_i$ 表示第 $i$ 个查询,格式如下之一: > $1\ k\ x$ > $2\ y$

输出格式

设第 2 类查询的次数为 $q$,请输出 $q$ 行。对于第 $j\ (1 \le j \le q)$ 行,输出对应于第 $j$ 个第 2 类查询的结果。

说明/提示

### 样例解释 1 最初所有节点都被颜色 $1$ 覆盖,此时颜色 $1$ 覆盖的两个顶点中距离最大的为顶点 $1$ 与顶点 $3$,其距离为 $2$。之后,如果将顶点 $1$ 改涂为颜色 $2$,则此时颜色 $1$ 覆盖的顶点为顶点 $2$ 和顶点 $3$,它们之间的距离为 $1$。 ### 数据范围 - $2 \leq N \leq 10^5$ - $1 \leq u_i,v_i \leq N$ - $1 \leq A_i \leq N$ - $1 \leq Q \leq 10^5$ - $1 \leq k \leq N$ - $1 \leq x \leq N$ - $1 \leq y \leq N$ - 对于任意一个查询 `2 y`,颜色 $y$ 至少会覆盖 2 个顶点。 - 输入均为整数。 - 输入的图一定是一棵树。 由 ChatGPT 5 翻译