满二叉树

wx783544 程序题 共 个子题

题目描述

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

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

树中每个结点都对应一棵以其为根的子树。请你求出给定有根树的所有 $n$ 棵子树中,有多少棵子树是满二叉树。

满二叉树是指所有叶子深度均相同,且除叶子外均有两个儿子的二叉树,例如以下三棵二叉树均是满二叉树:

()      ()           ()
       /  \          /  \
     ()    ()      ()    ()
                /  \  /  \
              ()   ()()   ()

例如,

  ()
 /  \
()   ()

在上面这棵有 3 个节点的二叉树中,有 3 个子树是满二叉树(包括整个树本身,及所有的单个叶子节点);

又例如,

  (1)
 /   \
(2)   (3)
     /   \
   (4)   (5)

在上面这棵有 5 个节点的二叉树中,有 4 个子树是满二叉树(包括节点 3 的子树,以及所有单个叶子节点)。

输入格式

第一行,一个正整数 $n$,表示有根二叉树结点数量。

接下来 $n$ 行,每行两个非负整数 $l_i, r_i$,表示结点 $i$ 的左儿子编号和右儿子编号,整数之间以空格分隔。

输出格式

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

样例

输入样例 1

4
2 3
4 0
0 0
0 0

输出样例 1

2

输入样例 2

3
2 3
0 0
0 0

输出样例 2

3

数据范围

对于 40% 的测试点,保证 $1 \le n \le 500$。

对于所有测试点,保证 $1 \le n \le 10^5$。

本题为编程题,提交代码并运行通过测试点后判分。

正在加载题目数据…
已答 /
子题
该题型需在试卷/作业中作答,单题练习暂不支持
答案解析
提交记录
共 条 仅展示自由练习提交
正在加载提交记录…
讨论
发布
登录后参与讨论 立即登录
发布讨论需先绑定并验证手机号 去绑定手机号
加载中…
我
我
回复 @
回复 @
发送
还没有人讨论,来发表第一条吧