4604:[GESP202603六级] 完全二叉树
文件提交:无需freopen
内存限制:128 MB
时间限制:1.000 S
评测方式:普通裁判
金币值:
命题人:
提交:0
解决:0
题目描述
## 题目背景
2026 年 03 月 GESP C++ 六级编程第 2 题
## 题目描述
给定一棵包含 $n$ 个结点的**有根二叉树**,结点依次以 $1,2,\dots,n$ 编号,根结点编号为 $1$。
对于结点 $i$,其左儿子的编号记为 $l_i$,右儿子编号记为 $r_i$。特别地,如果左儿子不存在则 $l_i=0$,如果右儿子不存在则 $r_i=0$。
树中每个结点都对应一棵以其为根的子树。请你求出给定有根树的所有 $n$ 棵子树中,有多少棵子树是完全二叉树。
## 输入格式
第一行,一个正整数 $n$,表示有根二叉树结点数量。
接下来 $n$ 行,每行两个正整数 $l_i,r_i$,表示结点 $i$ 的左儿子编号和右儿子编号。
## 输出格式
输出一行,一个整数,表示所有子树中完全二叉树的数量。
## 样例
```input1
4
2 3
4 0
0 0
0 0
```
```output1
4
```
```input2
4
2 3
0 0
4 0
0 0
```
```output2
3
```
## 数据范围
对于 $40\%$ 的测试点,保证 $1\leq n\leq 500$。
对于所有测试点,保证 $1\leq n\leq 10^5$。