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

  • 相关阅读:
    Winfrom 动画实现
    Android-SD卡相关操作
    Android-动态权限获取
    Java 常用知识点
    无锁队列的实现
    稳定的快排
    设计模式
    map的线程安全
    win 消息
    memecpy源码
  • 原文地址:https://www.cnblogs.com/wuyuewoniu/p/4337148.html
Copyright © 2011-2022 走看看