#PD020A. 树的绘制 (tree)
树的绘制 (tree)
树的绘制 (tree)
- 输入:
tree.in - 输出:
tree.out - 时间限制:
1 s - 内存限制:
256 MB
题目描述
小 A 正在学习如何用程序画一棵树。
给定一棵有 个点的树,点的编号为 到 。这棵树的 条边按输入顺序编号为 到 。
一开始,小 A 只画出了点 。之后他会不断重复下面的过程:
- 从第 条边到第 条边,按输入顺序依次检查每条边。
- 如果当前边连接了一个已经画出的点和一个还没有画出的点,那么他会立刻画出这个还没有画出的点,以及这条边。
- 如果当前边的两个端点都已经画出,或者都还没有画出,则什么也不做。
每完整检查一遍所有边,称为一次“读边”。
当所有点都被画出后,绘制结束。请你求出小 A 至少需要读边多少次。
输入格式
从文件 tree.in 中读入数据。
第一行包含一个整数 ,表示测试数据组数。
对于每组数据:
第一行包含一个整数 。
接下来 行,每行包含两个整数 ,表示第 条边连接点 和点 。
保证每组数据给出的边构成一棵树。
输出格式
输出到文件 tree.out 中。
对于每组数据,输出一行一个整数,表示绘制这棵树需要的读边次数。
样例1输入
2
6
4 5
1 3
1 2
3 4
1 6
7
5 6
2 4
2 7
1 3
1 2
4 5
样例1输出
2
3
样例1解释
对于第一组数据,第一次读边时可以画出点 ,并且在继续向后读到边 时,还可以画出点 。
但边 出现在输入的最前面,在第一次读边时点 还没有被画出,所以点 不能在第一次读边时画出。
第二次读边时,边 可以生效,于是点 被画出。因此答案为 。
数据范围
对于所有数据,,,保证所有测试数据中 的总和不超过 。每个测试点 分。
| 测试点编号 | 特殊性质 | |
|---|---|---|
| 无 | ||
| 树是一条链,且边集为 | ||
| 点 与所有其他点直接相连 | ||
| 从点 到任意点的路径上,边编号单调递增 | ||
| 无 |
相关
在下列比赛中: