码迷,mamicode.com
首页 > 其他好文 > 详细

Uva 699The Falling Leaves

时间:2016-05-29 23:21:04      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:

0.唔。这道题 首先要明确根节点在哪儿 初始化成pos=maxn/2;

1.因为是先序的输入方法,所以这个建树的方法很重要

 

 1 void build(int p)
 2 {
 3     int v;
 4     cin>>v;
 5 
 6     if(v!=-1)
 7     {
 8         sum[p]+=v;
 9         build(p-1),build(p+1);
10     }
11 }

 

 

 

 1 #include  <iostream>
 2 #include <cstring>
 3 using namespace std;
 4 const int maxn=82 ;
 5 int sum[maxn];
 6 int k;
 7 void build(int p)
 8 {
 9     int v;
10     cin>>v;
11 
12     if(v!=-1)
13     {
14         sum[p]+=v;
15         build(p-1),build(p+1);
16     }
17 
18 }
19 void output()
20 {
21     cout<<"Case "<<++k<<":"<<endl;
22     int p=0;
23     while(sum[p]==0) p++;
24 
25     cout<<sum[p++];
26 
27     while(sum[p]!=0)
28         cout<<" "<<sum[p++];
29     cout<<endl<<endl;
30 }
31 int main()
32 {
33     int root;
34     k=0;
35     while(cin>>root)
36     {
37         memset(sum,0,sizeof(sum));
38         if(root==-1) break;
39         int pos=maxn/2;
40         sum[pos]=root;
41 
42         build(pos-1);
43         build(pos+1);
44 
45         output();
46 
47 
48     }
49     return 0;
50 }

 

Uva 699The Falling Leaves

标签:

原文地址:http://www.cnblogs.com/luosuo10/p/5540564.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!