编程题
树点涂色 ### 题目描述 Bob 有一棵 $n$ 个点的有根树,其中 $1$ 号点是根节点。Bob 在每个点上涂了颜色,并且每个点上的颜色不同。 定义一条路径的权值是:这条路径上的点(包括起点和终点)共有多少种不同的颜色。 Bob可能会进行这几种操作: - `1 x` 表示把点 $x$ 到根节点的路径上所有的点染上一种没有用过的新颜色。 - `2 x y` 求 $x$ 到 $y$ 的路径的权值。 - `3 x` 在以 $x$ 为根的子树中选择一个点,使得这个点到根节点的路径权值最大,求最大权值。 Bob一共会进行 $m$ 次操作。 ### 输入描述 第一行两个数 $n,m$。 接下来 $n-1$ 行,每行两个数 $a,b$,表示 $a$ 与 $b$ 之间有一条边。 接下来 $m$ 行,表示操作,格式见题目描述。 其中, $1\leq n \leq 10^5$,$1\leq m \leq 10^5$。 ### 输出描述 每当出现 $2,3$ 操作,输出一行。 如果是 $2$ 操作,输出一个数表示路径的权值。 如果是 $3$ 操作,输出一个数表示权值的最大值。 ### 输入输出样例 #### 示例 1 >输入 ```txt 5 6 1 2 2 3 3 4 3 5 2 4 5 3 3 1 4 2 4 5 1 5 2 4 5 ``` >输出 ```txt 3 4 2 2 ```
查看答案
赣ICP备20007335号-2