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

A70764. 子结点的数量(2)

编程题 入门

题目描述

给定一棵树中的若干父结点和子结点的关系描述(结点 1 是树根),请问该树中,每个结点有多少个子结点。

比如:读入父子关系如下(请注意:本题读入的两个数 xy ,不保证 xy 的父)。

2 1
2 3
2 4

因此每个结点的子结点的数量分别是:1 2 0 0

输入格式

1 行,读入一个整数 n ,表示树中结点的数量,树中的结点编号也是 1 \sim n。(n \le 100

接下来 n-1 行,每行有一对父子关系 x y不保证 xy 的父

输入数据保证一定合法,能够形成一棵树,且不存在重复的父子关系的读入。

输出格式

输出 n 个数,用空格隔开,表示按照编号从小到大的顺序,输出每个结点子结点的数量。

输入输出样例

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

说明/提示

## 思路

「子结点的数量(2)」建树后 DFS/BFS 统计深度、子树或求 LCA/直径。

## 步骤

1. 读入边并建树。
2. 从根遍历更新深度、父节点或子树大小。
3. 按题意输出询问结果。