题目名称 1636. [UVa 699] 下落的树叶
输入输出 leaves.in/out
难度等级
时间限制 3000 ms (3 s)
内存限制 256 MiB
测试数据 1
题目来源 Gravatarsywgz 于2014-05-16加入
开放分组 全部用户
提交状态
分类标签
UVa
分享题解
通过:24, 提交:43, 通过率:55.81%
Gravatarkandy 100 0.000 s 0.00 MiB C++
Gravatarxxcx 100 0.000 s 0.00 MiB C++
Gravatar筽邝 100 0.000 s 0.17 MiB Pascal
Gravatar筽邝 100 0.000 s 0.17 MiB Pascal
Gravatarhelloworld123 100 0.000 s 0.17 MiB Pascal
Gravatarhelloworld123 100 0.000 s 0.17 MiB Pascal
Gravatar这_不错 100 0.000 s 0.17 MiB Pascal
Gravatar筽邝 100 0.000 s 0.17 MiB Pascal
Gravatar旋转华尔兹 100 0.000 s 0.29 MiB C
Gravatarliu_runda 100 0.000 s 0.30 MiB C++
关于 下落的树叶 的近10条评论(全部评论)
这测试数据坑爹啊!!!!
Gravatar这_不错
2016-04-17 14:43 7楼
用了一种把rebuild()写在循环判断条件里的奇葩写法
Gravatarliu_runda
2016-02-16 19:36 6楼
Gravatar筽邝
2014-08-30 10:02 5楼
为什么只有一个测试点= =懒不死
GravatarHouJikan
2014-08-29 15:59 4楼
回复 @wolf :
该你写了
Gravatar752199526
2014-07-01 16:57 3楼
回复 @Hoskey :
偷懒呗,没人写测试数据。
Gravatarwolf
2014-06-26 12:00 2楼
...
Gravatarslyrabbit
2014-05-24 20:52 1楼

1636. [UVa 699] 下落的树叶

★   输入文件:leaves.in   输出文件:leaves.out   简单对比
时间限制:3 s   内存限制:256 MiB

【题目描述】

中北部地区的秋天,树上的叶片绚丽多姿,随后飘落形成一堆堆落叶。如果同样的事情发生在二叉树上,成堆的树叶会是什么样?

我们假设二叉树的节点叶子掉落的片数等于该节点所存储的一个整型数。继续假设这些叶子都是垂直下降到地面的。我们还认为一个父节点的左孩子的右孩子和该父节点在同一垂直线上,考虑下面的树:

叶子数为5和6的两个节点水平位置相同(垂直位置不同),叶子数为7的节点在5、6节点左侧一个单位处,叶子数为3的节点在5、6节点右侧一个单位处。当叶子节点“掉落”时会形成三个堆:最左边的堆有7片叶子(从最左边的节点中掉落),相邻的堆有11片叶子(叶子数分别为5和6的两个节点掉落堆在一起),最右边的堆有3片叶子(从最右边的节点中掉落)。

【输入格式】

输入包含多个测试样例,描述一棵树。先给出树中根节点中的值,然后先是左子树的描述,然后是右子树的描述。如果子树是空的,其左右孩子值均为-1。因此,上面所示的树被指定为5 7 -1 6 -1 -1 3 -1 -1。每一个叶子节点包含一个非零正整数值。最后一个测试样例以单独的-1结束,请参考Sample Input。

【输出格式】

对于每个测试样例,第一行输出测试编号(从1开始)。下一行从左到右显示每堆叶子的数值。每一堆的数值都用空格隔开(宽度将不超过80个字符),每个输出样例后包含一个空行,请参考Sample Output。

【样例输入】

5 7 -1 6 -1 -1 3 -1 -1
8 2 9 -1 -1 6 5 -1 -1 12 -1
-1 3 7 -1 -1 -1
-1

【样例输出】

Case 1:
7 11 3

Case 2:
9 7 21 15

【来源】

UVa 699 The Falling Leaves