UVa 699 The Falling Leaves(递归建树)

  假设一棵二叉树也会落叶  而且叶子只会垂直下落   每个节点保存的值为那个节点上的叶子数   求所有叶子全部下落后   地面从左到右每堆有多少片叶子

  和UVa 839 -- Not so Mobile(树的递归输入)有点像  都是递归输入的  一个节点(设水平位置为p)  则它的左右儿子节点的水平位置分别为  p-1  p+1   也是可以边输入边处理的  输入完也就得到答案了   注意每个样例后面都有一个空行  包括最后一个

 #include<iostream>
#include<cstring>
using namespace std;
const int maxn = ;
int sum[maxn];
void build(int p)
{
int v;
cin>>v;
if(v == -) return;
sum[p] += v;
build(p-);build(p+);
} bool init()
{
int v;
cin>>v;
if(v == -) return false;
memset(sum,,sizeof(sum));
sum[maxn/] += v;
build(maxn/-);build(maxn/+);
return true;
} int main()
{
int kase = ;
while(init())
{
int p=;
while(sum[p] == ) p++;
cout<<"Case "<<++kase<<":"<<endl;
for(int i=p;;i++)
{
if(sum[i] == )
{
cout<<endl<<endl;break;
}
if(i!=p) cout<<" ";
cout<<sum[i];
}
}
return ;
}

最新文章

  1. 张高兴的 UWP 开发笔记:横向 ListView
  2. 新建 ASP.NET Core Web API 项目 -- RESTFul 风格 Hello World!
  3. c#线程之异步委托begininvoke、invoke、AsyncWaitHandle.WaitOne 、异步回调
  4. ZOJ 1234 Chopsticks
  5. [King.yue]Ext中Grid得到选择行数据的方法总结
  6. C#开发移动平台iOS、Android 与Windows
  7. java并发4-单例设计方法
  8. IOS自学笔记1——学前准备
  9. mysql HA方案: MHA
  10. express 4.x 文件上传
  11. sqlserver查询数据库中有多少个表
  12. shell 脚本编写 if else then
  13. C++ RCSP智能指针简单实现与应用
  14. VS发布网站时,报错提示:“未能将文件xxx复制到xxx,未能找到文件xx”三种解决方案!
  15. StringBuufer与StringBulder线程的区别
  16. ORA-01440: column to be modified must be empty to decrease precision or scale
  17. (33)关于django中路由自带的admin + 建表关系的讲解
  18. wifidog 源码初分析(1)-转
  19. stl学习记录(2)
  20. Winform无边框窗体拖动

热门文章

  1. 01 初识HTML
  2. Python新式类与经典类(旧式类)的区别
  3. 互联网安全架构之常见的Web攻击手段及解决办法
  4. Django的MySQL Driver配置
  5. jq选择CheckBox进行排序
  6. linux下mysql忘记密码解决方案
  7. 韦东山嵌入式Linux学习笔记04--点亮开发板的一个LED灯
  8. python用jdbc读取oracle表和列的信息,生成java代码
  9. Centos 7搭建Gitlab服务器以及操作(创建项目,创建群组,创建用户,添加密钥)
  10. Mongodb文档查询