P1030 求先序排列 (一个非常棒的写法)
理论正确就是真正的正确,误。。。
就是找嘛,找到每一个对应字符,然后对应的左右子树的区间,然后就可以了。
#include <bits/stdc++.h>
using namespace std;
char mid[100];
char suff[100];
void getpre(int ml,int mr,int sl,int sr)
{
// printf("%d %d %d %d\n",ml,mr,sl,sr);
if (ml>mr) {
return ;
}
if (ml==mr) {
printf("%c",mid[ml]);
return ;
}
char root=suff[sr];
printf("%c",root);
int i;
for (i=ml;i<=mr;i++) {
if (root==mid[i]) break;
}
char rs=(i+1)>mr?'#':mid[i+1];
int j;
for (j=sl;j<=sr;j++) {
if (rs==suff[j]) break;
}
j=(j>sr)?sr:j;
getpre(ml,i-1,sl,j-1);
getpre(i+1,mr,j,sr-1);
}
int main()
{
scanf("%s",mid);
scanf("%s",suff);
int len=strlen(mid);
getpre(0,len-1,0,len-1);
return 0;
}
/*
BADCE
BDECA
*/
P1030 求先序排列 (一个非常棒的写法)的更多相关文章
- 二叉树的遍历 &【NOIP2001普及组】& 洛谷 P1030 求先序排列
题目链接 https://www.luogu.org/problemnew/show/P1030 模板题 先讲一下二叉树的遍历 二叉树的遍历 分类 性质 求法 分为三类: 先序遍历(PreOrder) ...
- 洛谷 P1030 求先序排列 Label:None
题目描述 给出一棵二叉树的中序与后序排列.求出它的先序排列.(约定树结点用不同的大写字母表示,长度<=8). 输入输出格式 输入格式: 2行,均为大写字母组成的字符串,表示一棵二叉树的中序与后序 ...
- P1030 求先序排列 /// 二叉树的遍历
题目大意: 给一棵树的中序排列 后序排列,求这棵树的先序排列 https://www.luogu.org/problemnew/show/P1030 二叉树的四种遍历解说 几种遍历的递归实现 后序排列 ...
- P1030 求先序排列 P1305 新二叉树
题目描述 给出一棵二叉树的中序与后序排列.求出它的先序排列.(约定树结点用不同的大写字母表示,长度\le 8≤8). 输入输出格式 输入格式: 22行,均为大写字母组成的字符串,表示一棵二叉树的中序与 ...
- 洛谷P1030求先序排列
题目描述 给出一棵二叉树的中序与后序排列.求出它的先序排列.(约定树结点用不同的大写字母表示,长度≤8. 输入输出格式 输入格式: 2行,均为大写字母组成的字符串,表示一棵二叉树的中序与后序排列. 输 ...
- P1030 求先序排列
题目描述 给出一棵二叉树的中序与后序排列.求出它的先序排列.(约定树结点用不同的大写字母表示,长度<=8). 输入输出格式 输入格式: 2行,均为大写字母组成的字符串,表示一棵二叉树的中序与后序 ...
- 洛谷:P1087 FBI树 P1030 求先序排列 P1305 新二叉树
至于为啥把这三个题放到一起,大概是因为洛谷的试炼场吧,三道树的水题,首先要理解 先序中序后序遍历方法. fbi树由于数量小,在递归每个区间时,暴力跑一遍区间里的数,看看是否有0和1.至于递归的方法,二 ...
- 洛谷 P1030 求先序排列
题目描述 给出一棵二叉树的中序与后序排列.求出它的先序排列.(约定树结点用不同的大写字母表示,长度<=8). 输入输出格式 输入格式: 2行,均为大写字母组成的字符串,表示一棵二叉树的中序与后序 ...
- 洛谷——P1030 求先序排列
https://www.luogu.org/problem/show?pid=1030#sub 题目描述 给出一棵二叉树的中序与后序排列.求出它的先序排列.(约定树结点用不同的大写字母表示,长度< ...
随机推荐
- python之路正则表达式
元字符 蓝色框中有非贪婪模式也不起作用,非贪婪模式在+后加上?号 有空字符串
- 常用excel函数公式及操作示例
一.数字处理 1.取绝对值 =ABS(数字) 2.取整 =INT(数字) 3.四舍五入 =ROUND(数字,小数位数) 二.判断公式 1.把公式产生的错误值显示为空 公式:C2 =IFERROR(A2 ...
- cmake编译升级
cmake的升级依赖于gcc版本,例如cmake 3.15.3依赖与gcc 4.8以上的版本 1)先升级gcc到4.8 参考:https://blog.csdn.net/Kangshuo2471781 ...
- apache配置跨域请求代理
1.配置允许跨域请求 Header always set Access-Control-Allow-Origin "*"Header always set Access-Contr ...
- [BJOI2012]连连看
Description Luogu4134 Solution \(l,r \le 1000\),暴力枚举是否能匹配.这是一个选匹配的问题,所以直接网络流,原图不一定是二分图咋办?拆点啊!然后直接做就行 ...
- codis安装以及启动
https://blog.csdn.net/ygd266/article/details/78469654
- elasticSearch 起步(CentOS7 success)
安装和启动 这里使用docker进行安装的 docker pull elasticsearch 然后使用 docker run -e ES_JAVA_OPTS="-Xms256m -Xmx2 ...
- iterations 快捷键
原帖:https://blog.csdn.net/Soinice/article/details/83505198 为了防止删除备份的. iterations 快捷键 Live Templates 其 ...
- Docker里面运行.net core
详细可以参考微软官方文档:https://docs.microsoft.com/zh-cn/aspnet/core/host-and-deploy/docker/building-net-docker ...
- 进程管理 supervisor
背景知识: supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启. 它是通过fork/exec的方式把这 ...