UVA - 548 Tree

输入一个二叉树的中序和后序遍历,请你输出一个叶子节点,该叶子节点到根的数值总和最小,且这个叶子是编号最小的那个。 输入: 您的程序将从输入文件中读取两行(直到文件结尾)。第一行是树的中序遍历值序列,第二行是树的后序遍历值序列。所有值将不同,大于零且小于或等于10000.二叉树的节1<=N<=10000。 输出: 对于每个树描述,您应该输出最小值路径的叶节点的值。存在多路径最小的情况下,您应该选择终端叶子节点上具有最小值的那条路径,且输出那个最小值的终端叶子。

在这里插入图片描述

代码如下:

#include <iostream>
#include <sstream>
using namespace std;
const int N = 10010;
int post_order[N], in_order[N], lch[N], rch[N];
//zhon  hou
int best_sum, best;
int n;bool read_line(int *a) {string line;if (!getline(cin, line))return false;stringstream ss(line);n = 0;//注意这里不能写成int n,因为后面要用到n,所以不要让n变成局部变量了int x;while (ss >> x)a[n++] = x;return n > 0;
}int build(int inL, int inR, int postL, int postR) {if (inL > inR)return 0;int root = post_order[postR];int k = inL;//注意这是k = inL,不是k = 0;while (in_order[k] != root)k++;int numLeft = k - inL;lch[root] = build(inL, k - 1, postL, postL + numLeft - 1);rch[root] = build(k + 1, inR, postL + numLeft, postR - 1);return root;
}void dfs(int u, int sum) {sum += u;if (!lch[u] && !rch[u])if (sum < best_sum || (sum == best_sum && u < best)) {best = u;best_sum = sum;}if (lch[u])dfs(lch[u], sum);if (rch[u])dfs(rch[u], sum);
}int main() {while (read_line(in_order)) {read_line(post_order);build(0, n - 1, 0, n - 1);best_sum = 999999999;dfs(post_order[n - 1], 0);cout << best << endl;}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/311407.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

.NET Core开发实战(第14课:自定义配置数据源:低成本实现定制化配置方案)--学习笔记...

14 | 自定义配置数据源&#xff1a;低成本实现定制化配置方案这一节讲解如何定义自己的数据源&#xff0c;来扩展配置框架扩展步骤1、实现 IConfigurationSource2、实现 IConfigurationProvider3、实现 AddXXX 扩展方法&#xff0c;用来作为注入的快捷方式源码链接&#xff1a;…

uml类图例子_转:(中文命名)UML类图新手入门级介绍

下文转于 2019-05-10。2020-03-10 发觉本出自2007 年出版的《大话设计模式》一书&#xff08;作者: 程杰&#xff09;第一章。于是将文末原链接删去。转载注&#xff1a; 中文命名的优势在UML图这样专注业务逻辑且完全符号化语法&#xff08;与英语无关&#xff09;的工具中特别…

API是什么

定义: API 是用于构建应用程序软件的一组子程序定义&#xff0c;协议和工具。一般来说&#xff0c;这是一套明确定义的各种软件组件之间的通信方法。 接口interface: 各个组件发生交互的区域 协议protocol: 规定了各部分之间如何进行交流的一系列规则的集合 格式format: …

瓷砖铺放-dfs

题目描述 有一长度为N(1< &#xff2e;< 10)的地板&#xff0c;给定两种不同瓷砖&#xff1a;一种长度为1&#xff0c;另一种长度为2&#xff0c;数目不限。要将这个长度为N的地板铺满&#xff0c;一共有多少种不同的铺法&#xff1f; 例如&#xff0c;长度为4的地面一共…

2020年学python_Python学习路线图(2020年最新版)

PythonPython开发Python语言Python学习路线图(2020年最新版)这是我刚开始学习python时的一套学习路线&#xff0c;从入门到上手。(不敢说精通&#xff0c;哈哈~)希望对大家有帮助哈~一、Python入门、环境搭建、变量、数据类型二、Python运算符、条件结构、循环结构三、Python函…

开源、免费、企业级的SiteServer CMS .NET CORE 7.0 预览版发布

经过连续不断地开发与完善&#xff0c;SiteServer CMS .NET CORE 版本终于在今天与大家见面了&#xff0c;版本为7.0.0-preview1&#xff0c;我们将在未来几个月收集大家的反馈&#xff0c;修复与完善产品&#xff0c;最终发布能够稳定运行的7.0正式版。基于.NET CORE的跨平台性…

equals, hashCode, toString方法重写,深入探究equals

首先是超类Employee: package chapter5_inheritance.equals;import java.time.LocalDate; import java.util.Objects;public class Employee {private String name;private double salary;private LocalDate hireDay;public Employee(String name, double salary, int year, i…

UVA - 839 Not so Mobile

输入一个树状天平&#xff0c;根据力矩相等原则判断是否平衡。如图所示&#xff0c;所谓力矩相等&#xff0c;就是Wl DlWr Dr,其中Wl和Wr分别为左右两边砝码的重量&#xff0c;D为距离。 采用递归&#xff08;先序&#xff09;方式输入&#xff1a;每个天平的格式为Wl ,Dl,Wr,…

.NET Core 3.0 即将结束生命周期,建议迁移 3.1

.NET Core 官方发布博客&#xff0c;说明 .NET Core 3.0 即将结束生命周期&#xff0c;建议开发者迁移到 3.1 版本。.NET Core 3.0 于 2019 年 12 月 3 日发布&#xff0c;这是一个 Current 版本而不是 LTS 版本&#xff0c;将于今年 3 月 3 日 EOL&#xff08;End of Life&…

CoreJava 笔记总结-第三章 Java的基本程序设计结构

CoreJava 笔记总结 文章目录CoreJava 笔记总结第三章 Java的基本程序设计结构数据类型1. 整型2. 浮点类型3. char类型4. boolean类型变量与常量1. 变量2. 常量3. 枚举类型运算符关系和boolean运算符数学函数与常量强制类型转换字符串空串与null串码点与代码单元构建字符串输入与…

python高级编程知识点_(转)python 高级编程技巧学习笔记

转自https://www.jianshu.com/p/104cec085611&#xff0c;部分图出不来&#xff0c;mark一下&#xff0c;关键时候供查看。第二章 数据结构相关话题2.1、筛选数据两种方式filter函数&#xff1a;filter(lambda x: x>0, data)注意&#xff1a;python3 需要把filter的结果转为…

.NET Core开发实战(第15课:选项框架:服务组件集成配置的最佳实践)--学习笔记...

15 | 选项框架&#xff1a;服务组件集成配置的最佳实践这一节讲解如何使用选项框架来处理服务和配置的关系选项框架的特性&#xff1a;1、支持单例模式读取配置2、支持快照3、支持配置变更通知4、支持运行时动态修改选项值在设计系统的时候需要遵循两个原则&#xff1a;1、接口…

UVA - 572 Oil Deposits-dfs找连通块

Discription 给定一个包含 *的二维数组&#xff0c;输出有几个是联通的&#xff0c;如果一个在另外一个相邻的八个方向则视作相邻。 Input 包含 *的二维数组。 Output 输出联通的个数 解题思路&#xff1a; 从每一个格子出发&#xff0c;递归遍历它周围的格子&#xff0c;每次…

HTMLCSS 超简单的前端设计入门-1!

第一个网页 文章目录第一个网页注释元素(标签,标记)元素的嵌套标准的文档结构语义化什么是语义化为什么需要语义化?文本元素hpspanpreHTML 实体a元素href 属性target属性路径的写法站内内资源和站外资源绝对路径和相对路径Emmet 注释 注释不参与运行 书写方式(html) <!-…

【朝夕技术专刊】WebApi部署多服务器配置Nginx负载均衡

欢迎大家阅读《朝夕Net社区技术专刊》第3期我们致力于.NetCore的推广和落地&#xff0c;为更好的帮助大家学习&#xff0c;方便分享干货&#xff0c;特创此刊&#xff01;很高兴你能成为首期读者&#xff0c;文末福利不要错过哦&#xff01;01PARTCoreWebApi教程本地演示环境Vi…

sprintf()函数的使用

sprintf&#xff08;&#xff09;&#xff1a; 函数功能&#xff1a;把格式化的数据写入某个字符串 函数原型&#xff1a;int sprintf( char buffer, const char format [, argument] … ); 返回值&#xff1a;字符串长度&#xff08;strlen&#xff09; 例子&#xff1a; cha…

CoreJava 笔记总结-第四章 对象与类

文章目录第四章 对象与类使用预定义类对象与对象变量Java库中的LocalDate类更改器方法和访问器方法用户自定义类用var声明局部变量使用null引用隐式参数与显示参数基于类的访问权限私有方法final实例字段静态字段与静态方法静态字段静态常量静态方法工厂方法main方法方法参数对…

windows路由表 重启后就还原了_绕过Apple id并可以随意重启的终极方案来了 (Windows下操作)...

▲请务必点击上方的蓝字关注我们哦&#xff01;「做有用的文章」我们知道自从Cheak M8漏洞出现后&#xff0c;使得A11-A7设备可以绕过AppleID使用&#xff0c;但是有着许多限制&#xff0c;例如不能重启&#xff0c;不能打电话使用蜂窝数据。如今针对无法修复蜂窝数据的Apple I…

UVA - 725 Division-sprintf的妙用

题目&#xff1a; 输入整数n&#xff0c;按从小到大顺序输出所有形如abcde/fghijn的表达式&#xff0c;其中a~j 恰好为0~9的一个排列&#xff08;可以有前导0&#xff09;&#xff0c;2<n<79 解题思路&#xff1a; 暴力枚举。 下面这代码暴力dfs&#xff0c;结果超时了…

基于.NET下的人工智能系列专题|.NET下的人工智能系列专题|用Keras.NET 做一个图像识别的训练...

.NET Core 的应用场景越来越广&#xff0c;开源社区也不断壮大&#xff0c; .NET Core在机器学习领域不断发展ML.NET外&#xff0c;也通过结合Tensorflow.NET去完善ML.NET在深度学习领域的功能&#xff0c;在ML.NET 1.3开始迈出了非常重要的一步。这不仅是微软拥抱开源的策略&a…