首页 > 其他分享 >Uva--699 The Falling Leaves,(二叉树的递归遍历)

Uva--699 The Falling Leaves,(二叉树的递归遍历)

时间:2023-05-20 10:55:06浏览次数:44  
标签:node index Case -- Leaves int 二叉树 ind sum

记录
10:46 2023-5-20

http://uva.onlinejudge.org/external/6/699.html

reference:《算法竞赛入门经典第二版》例题6-10

二叉树的层次遍历,边读边写(这些题给我感觉是非常灵活),对每个节点需要的数据就是在sum数组的位置

#include<cstdio>
#include<iostream>
#include<sstream>
#define MAX_N 10000
using namespace std;
typedef long long ll;
typedef unsigned int uint;
const int INF = 0x3f3f3f3f;

int sum[MAX_N];
int root;
int begin_index = INF, end_index = 0, ind = MAX_N / 2;
int Case = 1;

//index 当前数据放在sum的那个位置
void solve(int ind) {
    if(ind < begin_index) {
        begin_index = ind;
    }
    if(ind > end_index) {
        end_index = ind;
    }
    int node;
    cin >> node;
    if(node != -1) {
        sum[ind - 1] += node;
        solve(ind - 1);
    }
    cin >> node;
    if(node != -1) {
        sum[ind + 1] += node;
        solve(ind + 1);
    }
}

void print(int Case) {
    printf("Case %d:\n", Case);
    for(int i = begin_index; i < end_index; i++) {
        cout << sum[i] << " ";
    }
    cout << sum[end_index] << endl << endl;
}

int main() {
    while (true) {
        fill(sum, sum + MAX_N, 0);
        begin_index = INF;
        end_index = 0;

        cin >> root;
        if(root == -1) break;
        sum[ind] += root;
        solve(ind);
        print(Case);

        Case++;
    }
}

标签:node,index,Case,--,Leaves,int,二叉树,ind,sum
From: https://www.cnblogs.com/57one/p/17416907.html

相关文章

  • 算法学习记录:[NOIP2011]铺地毯
    题目链接:https://ac.nowcoder.com/acm/contest/20960/1016解题思路:最直观的方法,因为编号大的地毯一定更靠后,所以直接用编号进行标记。时间复杂度分析:该代码时间复杂度为\(O(N^2)\),有\((10^5)^2\),评测oj每1秒能接受的时间复杂度为:\([10^8,10^9]\)所以下代码一定TLE。TLE......
  • 基于ChatGPT和谷歌3D贴图的虚幻引擎5
    作者:githubdaily相信大家小时候躺在床上,都曾设想过这么一个场景:当你闭上眼睛时,感觉身心十分安宁,物理世界慢慢淡出,身体也随着变得飘逸,一切仿佛只剩下呼吸声和心跳声。一阵微风拂过,你缓缓睁开双眼,发现自己摆脱了地心引力,出现在了天空之上,只要一个想法,便可瞬间穿梭到地球上任意位......
  • Java文件与IO流
    首先我们要清楚什么是流,正如其名,很形象,流就是像水一样的东西,具有方向性,在java中,流大概就是类接下来,我们要对输入输出流有一个基本认识,什么是输入输出流呢?输入输出明显需要一个参照,而这个参照就是主存。清楚了上面的概念,我们接着看下去吧。文件文件的创建文件创建共有三种......
  • 解决新建项目找不到页面问题
    原因一:主启动类位置要放在与controller包同级目录下原因二:缺少thymeleaf启动依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId></dependency>......
  • Perl :meaningful
    在生信学习过程中,要求充分掌握和默写重要的Perl脚本的每一行代码有以下几个重要的意义:理解算法和逻辑:Perl脚本在生信领域中常用于处理和分析大规模的生物信息学数据。通过深入理解每一行代码,你将更好地理解所采用的算法和逻辑。这有助于你熟悉常见的生物信息学问题的解决方法,......
  • OTU的概念
    OTU(OperationalTaxonomicUnit,操作分类单元)是一种在微生物学和生态学研究中常用的概念,用于表示在分子生物学分析中将微生物序列聚类为群落的基本单位。在微生物群落分析中,研究者通常使用高通量测序技术(如16SrRNA基因测序)或基于DNA片段的元转录组测序来获取微生物样本中的序列信......
  • XAF中XPO与EFCore的探讨
    前言首先抛出一个问题,在XAF项目中,我们现在可不可以选择EFCore?每个人可能都有自己的答案,这也没有什么标准答案。下面是我的个人看法,在刚接触XAF时,如何选择ORM,我也是犹豫了许久,最终选择了XPO,主要基于以下几点考虑1.XPO是DEV的产品,支持力度及倾向性要比EFCore高2.XPO是XAF最开始支......
  • CF1781F题解
    \(\text{link}\)。也是一道非常巧妙的\(\texttt{dp}\)。容易想到把括号变成\(\pm1\)。考虑括号序列合法等价于前缀和\(\ge0\),我们可以想加入\(()\)或\()(\)对前缀的影响。设加入的位置的前一位前缀和为\(x\),则加入\(()\)相当于把\(x\)替换为\([x,x+1,x]\),加入......
  • TCP协议的全局参数
    TCP协议的全局参数,这些参数描述了计算机如何在网络上进行数据传输和通信。这些参数的含义如下:接收方缩放状态(WindowScaling):启用接收方缩放状态功能。接收窗口自动调节级别(Auto-tuninglevel):窗口自适应缩放的级别为“正常”。加载项拥塞控制提供程序(CongestionProvider):默认的......
  • Scala初学者指南
    本文已收录至Github,推荐阅读......