Uva 699The Falling Leaves
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Uva 699The Falling Leaves相关的知识,希望对你有一定的参考价值。
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的主要内容,如果未能解决你的问题,请参考以下文章
UVA699 UVALive5471 The Falling Leaves树权和
下落的树叶 (The Falling Leaves UVA - 699)