zoukankan      html  css  js  c++  java
  • UVa 699 The Falling Leaves

    题意:给出按先序输入的一颗二叉树,分别求出从左到右的相同横坐标上的节点的权值之和

    递归建树,然后用sum数组分别统计每一个横坐标上的权值之和

    感觉建树都在递归递归递归= =慢慢理解吧  

     1 #include<iostream>  
     2 #include<cstdio>  
     3 #include<cstring> 
     4 #include <cmath>   
     5 #include<algorithm>  
     6 using namespace std;
     7 
     8 typedef long long LL;
     9 const int maxn=2000;
    10 int sum[maxn];
    11 
    12 void build(int p){
    13     int v;
    14     cin>>v;
    15     if(v==-1) return;
    16     sum[p]+=v;
    17     build(p-1);//建左子树 
    18     build(p+1);//建右子树 
    19 }
    20 
    21 bool init(){
    22     int v;
    23     cin>>v;
    24     if(v==-1) return false;
    25     memset(sum,0,sizeof(sum));
    26     int pos=maxn/2;
    27     sum[pos]=v;
    28 //    printf("init被调用
    ");
    29     build(pos-1);build(pos+1);
    30 }
    31 
    32 int main()
    33 {
    34     int kase=0;
    35     while(init()){
    36         int p=0;
    37         while(sum[p]==0) p++;
    38         cout<<"Case "<<++kase<<":
    "<<sum[p++];
    39         while(sum[p]!=0) cout<<" "<<sum[p++];
    40         cout<<"
    
    ";
    41     }
    42     return 0;
    43 }
    View Code

    go---go--go

  • 相关阅读:
    java7或java8新特性
    反射中,Class.forName和ClassLoader区别
    &和&&的区别
    JAVA时区问题总结
    索引失效原因及解决索引失效方法
    索引失效的7种情况
    MySQL Explain详解
    java switch
    java 生成注释文档
    spring 获取配置文件的值
  • 原文地址:https://www.cnblogs.com/wuyuewoniu/p/4337148.html
Copyright © 2011-2022 走看看