A128412.[GESP202606 六级]满二叉树

普及/提高-

GESP

通过率:0%

时间限制:1.00s

内存限制:512MB

题目描述

给定一棵包含 nn 个结点的有根二叉树,结点依次以 1n1 \sim n 编号,根结点编号为 11

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

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

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

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

例如,

  ()
 /   \
()    ()

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

又例如,

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

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

输入格式

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

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

输出格式

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

输入输出样例

  • 输入#1

    4
    2 3
    4 0
    0 0
    0 0

    输出#1

    2
  • 输入#2

    3
    2 3
    0 0
    0 0

    输出#2

    3

说明/提示

数据范围

对于 30%30\% 的测试点,保证 n1000n \le 1000

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

输入解题思路,AI测评打分。不知道怎么写?

首页