zoukankan      html  css  js  c++  java
  • UVa 699 下落的树叶

    https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=640

    给一颗二叉树,每个结点都有一个水平位置,左子节点在它左边一个单位,右子节点在右边一个单位。从左向右输出每个水平位置的所有结点的权值之和。

    一开始还建了树,后来发现建了树也啥用。哎,到现在为止,我的递归思想还是太弱了。

     1 #include<iostream>
     2 #include<cstring>
     3 using namespace std;
     4 
     5 int sum[1000];
     6 
     7 void init(int pos)
     8 {
     9     int x;
    10     cin >> x;
    11     if (x == -1)  return;
    12     sum[pos] += x;
    13     init(pos - 1);
    14     init(pos + 1);
    15 }
    16 
    17 int main()
    18 {
    19     int t;
    20     int count = 0;
    21     while (cin >> t&&t != -1)
    22     {
    23         memset(sum, 0, sizeof(sum));
    24         sum[500] = t;
    25         init(500-1);
    26         init(500 + 1);
    27         int i = 0;
    28         while (sum[i] == 0)  i++;
    29         int p = 500;
    30         while (sum[p] != 0)   p++;
    31         cout << "Case " << ++count << ":" << endl;
    32         for (int k = i; k < p-1; k++)
    33         {
    34             cout << sum[k] << " ";
    35         }
    36         cout << sum[p-1] << endl<<endl;
    37     }
    38     return 0;
    39 }

    2016-12-02  15:36:33

  • 相关阅读:
    MySQL初始化以及更改密码
    对付小白的ARP的简单介绍
    PXE批量安装CentOS7操作系统
    20不惑
    辩论会
    学习
    JAVA语言的特点
    程序流程图对新手来说很重要。
    浅谈博客、微博与轻博客的区别与联系
    要学好JAVA要注意些什么?
  • 原文地址:https://www.cnblogs.com/zyb993963526/p/6125985.html
Copyright © 2011-2022 走看看