• 【数据结构】The Falling Leaves(6-10)


    [UVA699]The Falling Leaves

    算法入门经典第6章例题6-10(P159)

    题目大意:有一颗二叉树,求水平位置的和。

    试题分析:乱搞就可以过,将树根节点的pos记为0,向左-1,向右+1,统计答案即可。

    #include<iostream>
    #include<cstring>
    #include<cstdio>
    #include<vector>
    #include<queue>
    #include<stack>
    #include<algorithm>
    using namespace std;
    
    inline int read(){
    	int x=0,f=1;char c=getchar();
    	for(;!isdigit(c);c=getchar()) if(c=='-') f=-1;
    	for(;isdigit(c);c=getchar()) x=x*10+c-'0';
    	return x*f;
    }
    const int MAXN=1000;
    const int INF=999999;
    int N,M;
    int sum[MAXN];
    int Min,Max;
    int cnt;
    
    void solve(int pos){
    	int ls=read();
    	Max=max(Max,pos);
    	Min=min(Min,pos);
    	if(ls!=-1){
    		sum[pos-1+200]+=ls;
    		solve(pos-1);
    	}
    	int rs=read();
    	if(rs!=-1){
    		sum[pos+1+200]+=rs;
    		solve(pos+1);
    	}
    	return ;
    }
    int k;
    int main(){
    	while(scanf("%d",&k)!=EOF){
    		if(k==-1) break;
    		memset(sum,0,sizeof(sum));
    		Min=Max=0;
    		sum[200]+=k;
    		solve(0);
    		printf("Case %d:
    ",++cnt);
    		for(int i=Min;i<Max;i++){
    			printf("%d ",sum[i+200]);
    		}
    		printf("%d
    
    ",sum[Max+200]);
    	}
    }
    
  • 相关阅读:
    函数part1 初始函数
    文件操作 文件修改的两种方式
    文件操作part3 文件内指针的移动
    文件操作part2
    day08作业
    文件操作part1
    字符编码
    ORA-15124 数据库启动阶段报错
    将数据库从普通文件系统迁移到ASM中
    在ASM中移动数据文件
  • 原文地址:https://www.cnblogs.com/wxjor/p/7296112.html
Copyright © 2020-2023  润新知