6-8 树 uva548
read 的方式值得学习
当不知道每一行有多少个输入的时候
getline 在弄成stringstream!一个一个处理
用built递归的方式化大为小进行建立树
dfs 遍历整个树来求最值
变量的功能要明确 当我设置了一个全局变量的时候 无意间在read函数中int n 导致局部n有值 而全局n始终为0
因此要明确变量很重要 这题很有价值 多打几遍!!!!!
#include<bits/stdc++.h>
using namespace std;
int built(int L1,int R1,int L2,int R2);
void dfs(int node,int sum);
int left1[],right1[];
bool read1(int *a); int zhong[],hou[];
int n;int best;int max1;
int main()
{ while(read1(zhong))
{
read1(hou); built(,n-,,n-);
max1=;
dfs(hou[n-],);
printf("%d\n",best);
} return ;
}
int built(int L1,int R1,int L2,int R2)
{
if(L1>R1) return ;
int root=hou[R2];
int p=L1;
while(zhong[p]!=root)p++;
int c=p-L1; left1[root]=built(L1,p-,L2,L2+c-);
right1[root]=built(p+,R1,L2+c,R2-);
return root; } void dfs(int node,int sum)
{
sum+=node;
if(!left1[node]&&!right1[node])
{
if(sum<max1||(sum==max1&&node<best)){best=node;max1=sum;} }
if(left1[node])dfs(left1[node],sum);
if(right1[node]) dfs(right1[node],sum); } bool read1(int *a)
{
string line;
if(!getline(cin,line))return false; stringstream ss(line);
int x; n=;
while(ss>>x)a[n++]=x;
return n>; }
6-8 树 uva548的更多相关文章
- 6_8 树(UVa548)<从中序和后序恢复二叉树>
你的任务是找出一棵二叉树中最小路径上终端节点(树叶,leaf node)的值.所谓路径乃指从根节点(root)旅行到任一终端节点.路径的值为所经过的节点的值的和(包含根节点及终端节点).而最小路径就是 ...
- 作业2.7_3(给UVA548 树 Tree单独一个帖子)🍺
代码:(输入函数很香建议保留)我不理解他是绿的但 The Blocks Problem 是黄的 #include<bits/stdc++.h> using namespace std; i ...
- B树——算法导论(25)
B树 1. 简介 在之前我们学习了红黑树,今天再学习一种树--B树.它与红黑树有许多类似的地方,比如都是平衡搜索树,但它们在功能和结构上却有较大的差别. 从功能上看,B树是为磁盘或其他存储设备设计的, ...
- ASP.NET Aries 入门开发教程8:树型列表及自定义右键菜单
前言: 前面几篇重点都在讲普通列表的相关操作. 本篇主要讲树型列表的操作. 框架在设计时,已经把树型列表和普通列表全面统一了操作,用法几乎是一致的. 下面介绍一些差距化的内容: 1:树型列表绑定: v ...
- 再讲IQueryable<T>,揭开表达式树的神秘面纱
接上篇<先说IEnumerable,我们每天用的foreach你真的懂它吗?> 最近园子里定制自己的orm那是一个风生水起,感觉不整个自己的orm都不好意思继续混博客园了(开个玩笑).那么 ...
- HDU1671——前缀树的一点感触
题目http://acm.hdu.edu.cn/showproblem.php?pid=1671 题目本身不难,一棵前缀树OK,但是前两次提交都没有成功. 第一次Memory Limit Exceed ...
- 算法与数据结构(十一) 平衡二叉树(AVL树)
今天的博客是在上一篇博客的基础上进行的延伸.上一篇博客我们主要聊了二叉排序树,详情请戳<二叉排序树的查找.插入与删除>.本篇博客我们就在二叉排序树的基础上来聊聊平衡二叉树,也叫AVL树,A ...
- [C#] C# 知识回顾 - 表达式树 Expression Trees
C# 知识回顾 - 表达式树 Expression Trees 目录 简介 Lambda 表达式创建表达式树 API 创建表达式树 解析表达式树 表达式树的永久性 编译表达式树 执行表达式树 修改表达 ...
- bzoj3207--Hash+主席树
题目大意: 给定一个n个数的序列和m个询问(n,m<=100000)和k,每个询问包含k+2个数字:l,r,b[1],b[2]...b[k],要求输出b[1]~b[k]在[l,r]中是否出现. ...
随机推荐
- 1.springboot:入门程序
一.Spring Boot 简介 官网英文: Spring Boot makes it easy to create stand-alone, production-grade Spring base ...
- android 简单的读写联系人
一.读取联系人 (1).从raw_contact表读 contact_id (2).从data表中读取data1 (3).从mimetypes读取mimetype 1.AndroidManifest. ...
- JavaSE之概述
作此篇是鉴于个人Java学习之需要,也便于日后进一步归纳与复习. 规定: 1 Java全面概述[囊括 Java工作原理,JVM方面知识,关键字(final,static,public,pr ...
- python - class内置方法 doc/module/del(析构方法)/cal 方法
__doc__ # __doc__ #摘要信息 #这个属性不会继承给子类 class Test(): """这是摘要信息""" pass x ...
- Builder建造者模式
- 函数前加static与不加static的区别
1:加了static后表示该函数失去了全局可见性,只在该函数所在的文件作用域内可见 2:当函数声明为static以后,编译器在该目标编译单元内只含有该函数的入口地址,没有函数名,其它编译单元便不能通过 ...
- TERMIOS详解【转】
转自:https://blog.csdn.net/guo_wangwei/article/details/1102931# TERMIOS NAME termios, tcgetattr, tcset ...
- Nodejs+定时截图+发送邮件
功能 每天定时截图,并把截到的图片自动通过邮件发送. 说明 代码注释已经非常详细,就不多做说明,需要的朋友自己查看代码即可,主文件Mail.js,截图文件capturePart1.js,capture ...
- shiro设置session超时时间
系统默认超时时间是180000毫秒(30分钟) long timeout = SecurityUtils.getSubject().getSession().getTimeout(); System. ...
- oem 重建
OracleDBControl启动失败to local from URL=http://your-url.co 方法: emca -deconfig dbcontrol db -repos d ...