← 查看本卷题目 第 54 / 351 题

满二叉树

1 秒 / 测试点 · 512 MiB · 19 个测试点。

题目描述

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

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

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

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

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

例如,

   ()  /  \()   ()

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

又例如,

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

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

输入格式

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

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

输出格式

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

输入样例 1

42 34 00 00 0

输出样例 1

2

输入样例 2

32 30 00 0

输出样例 2

3

数据范围

对于40%的测试点,保证 1≤n≤5001\le n\le500。

对于所有测试点,保证 1≤n≤1051\le n\le10^5。

时间限制:1.0 s;内存限制:512.0 MB。