#GESP620260302. 【GESP-六级】-2026.03-完全二叉树

    ID: 244 传统题 1000ms 512MiB 尝试: 1 已通过: 1 难度: 10 上传者: 标签>GESPGESP六级2026.03二叉树完全二叉树判定树形动态规划后序遍历子树高度

【GESP-六级】-2026.03-完全二叉树

题目描述

给定一棵包含 n 个结点的有根二叉树,结点依次以 1,2,…,n 编号,根结点编号为 1。

对于结点 i,其左儿子的编号记为 l_i,右儿子的编号记为 r_i。特别地,如果左儿子不存在则 l_i=0,如果右儿子不存在则 r_i=0。

树中每个结点都对应一棵以其为根的子树。请你求出给定有根树的所有 n 棵子树中,有多少棵子树是完全二叉树。完全二叉树指除最后一层外其余层均填满,且最后一层结点从左到右连续排列。

输入格式

第一行,一个正整数 n,表示有根二叉树结点数量。接下来 n 行,每行两个正整数 l_i,r_i,表示结点 i 的左儿子编号和右儿子编号;不存在的儿子用 0 表示。

输出格式

输出一行,一个整数,表示所有子树中完全二叉树的数量。

样例

样例输入 1

4
2 3
4 0
0 0
0 0

样例输出 1

4

样例输入 2

4
2 3
0 0
4 0
0 0

样例输出 2

3

数据范围

对于 40% 的测试点,保证 1≤n≤500;对于所有测试点,保证 1≤n≤10^5。