测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A16500. Tree Coloring (Easy Version)

编程题 普及/提高-
知识点

题目描述

这是本题的 Easy 版本,两个版本的区别在于本版本只要求你求出最小操作次数。只有当你解决了所有版本后才能进行 Hack。

给定一棵以 $1$ 号点为根的树 $^{\text{∗}}$,共 $n$ 个顶点,编号为 $1$ 到 $n$,每个顶点初始都是白色。定义 $d_i$ 为 $i$ 号顶点到根节点的距离。你可以执行任意次如下操作:

1. 选择一个白色顶点的子集 $S$,满足子集中没有两个节点有边直接连接,且没有两个节点到 $1$ 号节点的距离相等。形式化地说,对于 $S$ 中任意 $x,y$ 且 $x\ne y$,有 $d_x\ne d_y$,且 $x$ 和 $y$ 之间没有边直接连接。
2. 将 $S$ 中的所有顶点染成黑色。

你的任务是计算将整棵树染成黑色所需的最小操作次数。$^{\text{∗}}$ 一棵树是一个无环连通图。根树是指定某个顶点为根的树。

输入格式

每组测试数据包含若干组测试用例。第一行一个整数 $t$($1\le t\le 10^4$),表示测试用例个数。

每组测试用例的第一行为一个整数 $n$($2\le n\le 2\cdot 10^5$),表示树的顶点数。

接下来 $n-1$ 行,每行两个整数 $u_i$ 和 $v_i$($1\le u_i,v_i\le n$,$u_i\ne v_i$),表示第 $i$ 条边的两个端点。

保证所给的边能够构成一棵树。

保证所有测试用例中 $n$ 的总和不超过 $2\cdot 10^5$。

输出格式

对于每组测试用例,输出最小的操作次数,每组一行。

输入输出样例

输入 #1
10
5
3 1
1 2
5 1
4 1
5
3 2
2 4
2 5
1 2
5
3 4
4 1
5 1
1 2
5
2 5
3 1
2 1
3 4
5
1 3
1 5
4 3
2 4
13
2 1
3 2
4 2
5 4
6 3
7 1
8 5
9 6
10 4
11 7
12 8
13 10
10
5 7
8 1
1 10
2 8
8 4
9 4
6 1
5 3
7 8
10
7 6
3 7
6 9
7 1
9 8
5 1
3 10
9 2
1 4
10
10 6
2 8
4 10
7 5
1 2
7 10
10 9
9 1
7 3
10
6 8
9 7
4 10
5 9
4 2
3 8
6 5
1 5
1 10
输出 #1
5
4
4
3
3
3
4
4
4
3

说明/提示

在第一个测试用例中,$d_1=1$,$d_2=d_3=d_4=d_5=2$。我们可以证明至少需要 $5$ 次操作,因为没有两个节点能同时参与一次操作。

在第二个测试用例中,最少需要 $4$ 次操作染黑整棵树。可以将节点 $1$ 和 $3$ 一起染色,剩下的 $3$ 个节点各自单独染色。
上一题 去做题 下一题