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$。

来源/分类