当前位置: 首页 > news >正文

题解:洛谷 P1827 [USACO3.4] 美国血统 American Heritage

【题目来源】

洛谷:[P1827 USACO3.4] 美国血统 American Heritage - 洛谷

【题目描述】

农夫约翰非常认真地对待他的奶牛们的血统。然而他不是一个真正优秀的记帐员。他把他的奶牛 们的家谱作成二叉树,并且把二叉树以更线性的“树的中序遍历”和“树的前序遍历”的符号加以记录而 不是用图形的方法。

你的任务是在被给予奶牛家谱的“树中序遍历”和“树前序遍历”的符号后,创建奶牛家谱的“树的 后序遍历”的符号。每一头奶牛的姓名被译为一个唯一的字母。(你可能已经知道你可以在知道树的两 种遍历以后可以经常地重建这棵树。)显然,这里的树不会有多于 26 个的顶点。

这是在样例输入和样例输出中的树的图形表达方式:

         C/  \/  \B    G/ \  /A   D  H/ \E   F

【输入】

第一行一个字符串,表示该树的中序遍历。

第二行一个字符串,表示该树的前序遍历。

【输出】

单独的一行表示该树的后序遍历。

【输入样例】

ABEDFCHG
CBADEFGH 

【输出样例】

AEFDBHGC

【解题思路】

image

【算法标签】

《洛谷 P1827 美国血统》 #模拟# #树形数据结构# #递归# #构造# #USACO#

【代码详解】

#include <bits/stdc++.h>
using namespace std;
string a, b;
// char a[30], b[30];
void f(int al, int ar, int bl, int br)
{int ak, ln, rn;  // 定义a中ak(即中序遍历中的根节点)for (int i=al; i<ar; i++) {  // 遍历a字符串if (a[i]==b[bl]) {  // 根据b中第一个字符,即根节点,找到a中根节点的位置ak = i;  // 记录其位置break;  // 退出循环}}ln = ak-al;  // 得到左子树的字符长度rn = ar-(ak+1);  // 以及右子树的字符长度if (ln>0) {  // 如果左子树长度不为0f(al, al+ln, bl+1, bl+1+ln);  // 传入中序和前序字符串的起始和终止位置}if (rn>0) {  // 如果右子树长度不为0f(ak+1, ak+1+rn, br-rn, br);  // 传入中序和前序字符串的起始和终止位置}cout << b[bl];  // 直到只有1个字符的情况,打印这个字符return;
}
int main()
{cin >> a >> b;  // 以字符串形式读入中序遍历和前序遍历字符串int n = a.length();  // 得到字符串长度int al = 0, ar = n, bl = 0, br = n;  // 定义a和b字符串的起始和结束为止f(al, ar, bl, br);  // 传入f递归函数中return 0;
}

【运行结果】

ABEDFCHG
CBADEFGH
AEFDBHGC
http://www.jsqmd.com/news/390187/

相关文章:

  • AI+时代降临,大模型人才黄金期!!小白程序员必看:AI大模型学习与职业发展全攻略
  • BISHI55 判断质数
  • 题解:洛谷 P1364 医院设置
  • 2026年球球大作战知名主播推荐排行:新老顶流谁主沉浮? - 资讯焦点
  • C#中ConcurrentDictionary的AddOrUpdate/GetOrAdd的并发问题
  • 智慧农业中的提示系统:提示工程架构师如何处理用户反馈?
  • 题解:洛谷 P4913 【深基16.例3】二叉树深度
  • 好累
  • 2026年成都市成华区口腔医院推荐:本地人公认的“排名前五”榜单! - 资讯焦点
  • AI“智力黑洞”:让大模型变聪明的实用避坑指南
  • F. Parabola Independence
  • 小白程序员必看:大模型行业应用入门与未来机遇
  • 2026年AI大模型的发展如何影响我们的生活、工作效率及未来的职业发展
  • 详细介绍:JVM篇5:编译和解释的区分 + 区分堆栈的好处 + 垃圾回收期的选择
  • 除甲醛哪个牌子好 2026 三款长效除醛产品专业测评与场景化方案 - 资讯焦点
  • 大模型时代:数据标注从“流水线”到“专家岗”,小白也能收藏的进阶指南!
  • 小白/程序员入门大模型:阿里Qwen3.5系列详解与学习清单
  • AI去中心化系统设计:如何实现跨链互操作性?
  • 大模型与AI:从历史到应用,小白也能看懂的未来革命(收藏版)
  • 掌握LLM应用工程:从Prompt到MCP,小白也能轻松入门并收藏这趟学习之旅!
  • 2026春晚大揭秘:AI大模型重塑舞台,小白程序员必看收藏版!
  • Linux 完全卸载 MySQL
  • 语言模型推理能力的跨文化适应性评估研究
  • 大模型幻觉:定义、成因与项目开发中的规避方法
  • AI大模型真的能把很多人的工作替代掉吗?大模型AI如何改变工作?提升技能的必备指南
  • 掌握分块策略:提升RAG应用准确性的关键步骤(收藏版)
  • 题解:洛谷 P2058 [NOIP 2016 普及组] 海港
  • Shell printf 命令
  • 题解:洛谷 P1996 约瑟夫问题
  • Mac mini 带回老家,打算用远程控制,第一次开机我傻眼了