#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <algorithm>
#include <cstdlib>
#include <stack>
#include <cctype>
#include <string>
#include <malloc.h>
#include <queue>
#include <map> using namespace std;
const int INF = 0xffffff;
const double Pi = * atan(); struct Node{
int val;
Node * right;
Node * left;
};
int cnt;
int a[];
int arr[];
int n,ll,rr;
void b_build(Node * &tmp){
if(n >= cnt)
return;
if(a[n] == -)
return;
tmp = new Node;
tmp->left = NULL;
tmp->right = NULL;
tmp->val = a[n];
if(n+ < cnt){
++n;
b_build(tmp->left);
}
if(n+ < cnt){
++n;
b_build(tmp->right);
}
} void dfs(Node * node,int num){
if(node == NULL)
return;
ll = min(ll,num);
rr = max(rr,num);
arr[num] += node->val;
dfs(node->left,num-);
dfs(node->right,num+);
return;
} int main()
{
// freopen("inpt.txt","r",stdin);
int cas = ;
while(){
int cntN = ;
int cntT = ;
int tmp;
cnt = ;
cin >> tmp;
if(tmp == -)
break;
a[cnt++] = tmp;
cntT++;
while(cin >> tmp){
if(tmp == -){
cntN++;
}
else{
cntT++;
}
a[cnt++] = tmp;
if(cntN == cntT + )
break;
}
Node * root = NULL;
n = ;
b_build(root);
memset(arr,,sizeof(arr));
ll = ;
rr = ;
dfs(root,);
cout << "Case " << ++cas << ":" << endl;
for(int i = ll;i < rr;i++)
cout << arr[i] << ' ';
cout << arr[rr] << endl;
cout << endl;
}
return ;
}

uva699   前序遍历建树然后dfs深搜用数组标记偏移……2333333

很简单的水题,数组开小了,一直wa……!

uva 699的更多相关文章

  1. UVA.699 The Falling Leaves (二叉树 思维题)

    UVA.699 The Falling Leaves (二叉树 思维题) 题意分析 理解题意花了好半天,其实就是求建完树后再一条竖线上的所有节点的权值之和,如果按照普通的建树然后在计算的方法,是不方便 ...

  2. UVa 699 The Falling Leaves(递归建树)

    UVa 699 The Falling Leaves(递归建树) 假设一棵二叉树也会落叶  而且叶子只会垂直下落   每个节点保存的值为那个节点上的叶子数   求所有叶子全部下落后   地面从左到右每 ...

  3. UVa 699 下落的树叶

    https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  4. UVa 699 落叶

    意甲冠军:我几乎不记得的题意!.! 它是一个长坑..我们从根节点开始,留下每一步,保存横坐标1,正确的一步加上横坐标1. 那么同样的横坐标统计data值总和. 思维:我来想,这可以递归成就.上就能够算 ...

  5. uva 699 the falling leaves——yhx

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAA3QAAAMsCAIAAACTL3d2AAAgAElEQVR4nOx9y7GuPA4tKRADk/92T8 ...

  6. UVa 699 (二叉树) The Falling Leaves

    题意: 按先序方式输入一棵二叉树,节点是带权的,左孩子在父节点的左一个单位,右孩子在父节点的右一个单位,从左到右输出相同水平位置节点之和. 分析: 做了好几道二叉树的题,代码应该也很好理解了.这里ma ...

  7. UVa 699 The Falling Leaves

    题意:给出按先序输入的一颗二叉树,分别求出从左到右的相同横坐标上的节点的权值之和 递归建树,然后用sum数组分别统计每一个横坐标上的权值之和 感觉建树都在递归递归递归= =慢慢理解吧 #include ...

  8. uva 699 The Falling Leaves dfs实现

    额,刘汝佳小白里面的配套题目. 题目求二叉树同垂直线上结点值的和. 可以用二叉树做,挺水的其实. 尝试使用dfs实现了:开一个大点的数组,根节点为最中间那点,然后读取时就可以进行和的计算了. 代码: ...

  9. 二叉树的递归遍历 The Falling Leaves UVa 699

    题意:对于每一棵树,每一个结点都有它的水平位置,左子结点在根节点的水平位置-1,右子节点在根节点的位置+1,从左至右输出每个水平位置的节点之和 解题思路:由于上题所示的遍历方式如同二叉树的前序遍历,与 ...

随机推荐

  1. POJ 2479 不相交最大子段和

    题目意思还是很好理解的,在一个数列中,找出不相交的两个子串使得其和最大. 解题思路: 对于每个i来说,求出[0 ~ i - 1] 的最大子段和以及[i ~ n - 1]的最大子段和,在加起来,求最大的 ...

  2. html向servlet传乱码解决办法

    html 设置为utf-8格式 <meta http-equiv="content-type" content="text/html;charset=UTF-8&q ...

  3. svn笔记2

    Examining History Your Subversion repository is like a time machine. It keeps a record of every chan ...

  4. GREENPLUM简单介绍

    原帖:http://www.itpub.net/thread-1409964-1-1.html 什么是GREENPLUM? 对于非常多IT人来说GREENPLUM是个陌生的名字.简单的说它就是一个与O ...

  5. block 解析 - 简介

    简介 block 类似标准的c函数,除了一些函数体一些可执行的代码,还可以把变量绑定到自动栈或者托管堆上.....和js里的闭包.c# lambda表达式有些类似,实质是一个函数指针.与函数指针的区别 ...

  6. linux cmd: linux下解压命令大全

    linux下解压命令大全 .tar 解包:tar xvf FileName.tar打包:tar cvf FileName.tar DirName(注:tar是打包,不是压缩!)———————————— ...

  7. 边框圆角化方式(原文链接http://www.cnblogs.com/SJP666/p/4678730.html)

    第一种方法:如果是CSS2.2的话,可以简单写一个制作圆角矩形,分上中下裁成三张图 <title>CSS3实现圆角</title> <style type="t ...

  8. SpringMVC日期类型转换问题三大处理方法归纳

    方法一:实体类中加日期格式化注解 @DateTimeFormat(pattern = "yyyy-MM-dd") private Date receiveAppTime; 方法二: ...

  9. jetty插件开发配置

    <plugins> <!-- jetty插件 --> <plugin> <groupId>org.mortbay.jetty</groupId&g ...

  10. Docker学习笔记(3) — docker仓库的镜像怎么删除

    docker越来越炙手可热,如果你的团队已经准备开始使用docker,那么私有仓库是必不可少的东西,首先是可以帮助你加快从服务器pull镜像的速度,其次也可以帮助你存放私有的镜像,本文主要为大家介绍如 ...