#CF1905B. 新手的Zelda

新手的Zelda

B. 新手的Zelda

每个测试点时间限制:11

每个测试点内存限制:256256 兆字节

给定一棵树。

一次 zelda 操作可以执行如下操作:

  • 选择树上的两个顶点 uuvv
  • 将从 uuvv 的路径上的所有顶点压缩成一个顶点。换句话说,路径 uuvv 上的所有顶点都会从树中删除,同时新建一个顶点 ww。之后,所有原本与这条路径上某个顶点相连的顶点 ss,都会改为与新顶点 ww 相连。

对顶点 1 和 5 执行的zelda操作示意图。

要求你求出:最少需要多少次 zelda 操作,才能使整棵树最后只剩下一个顶点。

树是一个连通且无环的无向图。

输入格式

每个输入包含多组测试数据。

第一行包含一个整数 tt,表示测试数据组数,其中:

1t1041 \le t \le 10^4

对于每组测试数据:

第一行包含一个整数 nn,表示树中的顶点个数,其中:

2n1052 \le n \le 10^5

接下来 n1n-1 行,每行包含两个整数 uiu_iviv_i,表示第 ii 条边连接的两个顶点,其中:

1ui,vin,uivi1 \le u_i, v_i \le n,\quad u_i \ne v_i

保证给出的边构成一棵树。

保证所有测试数据中 nn 的总和不超过:

10510^5

输出格式

对于每组测试数据,输出一个整数,表示让整棵树只剩下一个顶点所需的最少 zelda 操作次数。

样例输入

4
4
1 2
1 3
3 4
9
3 1
3 5
3 2
5 6
6 7
7 8
7 9
6 4
7
1 2
1 3
2 4
4 5
3 6
2 7
6
1 2
1 3
1 4
4 5
2 6

样例输出

1
3
2
2

说明

在第 11 组测试数据中,只需要对顶点 22 和顶点 44 执行一次 zelda 操作即可。

在第 22 组测试数据中,一种可行方案如下:

  • u=2,v=1u=2, v=1,新产生的顶点记为 w=10w=10
  • u=4,v=9u=4, v=9,新产生的顶点记为 w=11w=11
  • u=8,v=10u=8, v=10

执行完上述操作后,整棵树只剩下一个顶点。