团体程序设计天梯赛(L2-011 玩转二叉树 (25 分))

中国高校计算机大赛团体程序设计天梯赛考点内容总结(15分以上题) L1: L1-002 打印沙漏 (20 分) 字符模拟 L1-003 个位数统计 (15 分) 字符模拟 L1-005 考试座位号 (15 分) 模拟 L1-006 连续因子 (20 分) 数学因数分解 L1-009 N个数求和 (20 分) 数学gcd,lcm L1-011 A-B (20 分) 字符串模拟 L1-015 跟奥巴马一起画方块 (15 分) 模拟 L1-016 查验身份证 (15 分) 数组模拟 L1-017 到底有多二 (15 分) 数学计算 L1-019 谁先倒 (15 分) 模拟 L 阅读详情

题目:

思路分析:

数据结构的题目

只要有二种思路吧!

1.用列表存储整个树 然后递归建树 bfs输出就行 和之前的一道题目一起 刷过的应该知道!

2.用数组来存整个树 然后跟进节点的特性2*i 2*i+1的关系递归建树

代码实现:

方法1:

const int MAX=1010;
struct node{
    int lson,rson;
}e[MAX];
int mid[MAX];
int pre[MAX];
int built(int prel,int prer,int midl,int midr){
    if(midl>midr) return 0;
    int root=pre[prel];
    int i=midl;
    while (root!=mid[i]) {
        i++;
    }
    int len=i-midl;
    e[root].rson=built(prel+1,prel+len,midl,i-1);
    e[root].lson=built(prel+1+len,prer,i+1,midr);
    return root;
}
int n;
void bfs(int x){
    queue<int>q;
    q.push(x);
    vector<int>v;
    while (!q.empty()) {
        int u=q.front();
        q.pop();
        if(!u) break;
        v.push_back(u);
        if(e[u].lson) q.push(e[u].lson);
        if(e[u].rson) q.push(e[u].rson);
    }
    int len=v.size();
        for(int i=0;i<len;i++)
            printf("%d%c",v[i],i==len-1?'\n':' ');
        return;
    
}
int main(){
    cin>>n;
    for(int i=0;i<n;i++){
        cin>>mid[i];
    }
    for(int i=0;i<n;i++){
        cin>>pre[i];
    }
    int root=pre[0];
    built(0, n-1, 0, n-1);
    bfs(root);
    return 0;
    
    
}

方法二:

const int MAX=1000010;
int n;
int mid[MAX];
int pre[MAX];
int tree[MAX];
void dfs(int pos,int lp,int rp,int lm,int rm){
    if(lm>rm) return;
    int root=pre[lp];
    int j=lm;
    tree[pos]=root;
    while (root!=mid[j]) {
        j++;
    }
    int len=j-lm;
    dfs(pos*2+1,lp+1,lp+len,lm,j-1);
    dfs(pos*2,lp+1+len,rp,j+1,rm);
}
int main(){
    int n; scanf("%d",&n);
    for(int i=1;i<=n;i++) scanf("%d",&mid[i]);
    for(int i=1;i<=n;i++) scanf("%d",&pre[i]);
    dfs(1,1,n,1,n);
    for(int i=1,j=1;i<=n;i++){
        while(tree[j]==0) j++;
        printf(i==n?"%d":"%d ",tree[j++]);
    }
    return 0;

}

【团体程序设计天梯赛】L1~L2实战反思合集(C++) New:最后那两个长字符串测试点的处理,不要在一开始就将违禁词替换成“<censored>”,而是先替换成“-_-”这样的比较短的字符串,否则违禁词多的时候,不断地改成长替换词,会加重下一次查找操作的负担。此时,我们只要保证生成的过程是“单方向的”,也就是通过递归函数中for的单方向给每个元素赋值,就保证了生成矩阵的唯一性。从而:跑通的次数 = 矩阵的种类数。// 从中序找到根节点,根节点左边就是左子树的中序遍历,得到其长度len,则后序中前len个刚好就是左子树的后序遍历,由此调整区间,重复操作。 阅读详情

相关推荐

PTA团体程序设计天梯赛

PTA团体程序设计天梯赛 有链接部分为完成的,其余未完成 ==================================== L1-001 Hello World 5 L1-002 打印沙漏 20 L1-003 个位数统计 15 L1-004 计算摄氏温度 5 L1-005 考试座位号 15 L1-006 连续因子 20 L1-007 念数字 10 L1-009 N个数求和 20 L1-010 比较大小 10 L1-011 A-B 20 L1-012 计算指数 5 L1-013 计算阶乘

qq_52384627的博客 2828

2023天梯赛L3-2 完美树

的代价改变颜色,求将整棵树中黑色节点数量与白色节点数量相差不超过1的最小代价。给定一颗树,每个节点颜色为0,或1,0代表黑色,1代表白色。为根的子树中0、1节点数量相等。若为奇数,我们需要讨论。为根的子树中0节点数量大于1。为根的子树中0节点数量小于1。显然,只有子树大小为偶数时。还有一个问题是假如我们选了。即可,可以看代码如何实现。是偶数,我们只需考虑计算。的颜色,0和1数量相等。,如何选使总代价最小。为奇数,我们考虑转移。

weixin_60896526的博客 3659

【团体程序设计天梯赛 往年关键真题 详细分析&完整AC代码】L2-011 玩转二叉树(数据结构) & L2-013 红色警报(并查集)

L2-011 玩转二叉树 数据结构 给定一棵二叉树的中序遍历和前序遍历,请你先将树做个镜面反转,再输出反转后的层序遍历的序列。所谓镜面反转,是指将所有非叶结点的左右孩子对换。这里假设键值都是互不相等的正整数。 L2-013 红色警报 并查集 战争中保持各个城市间的连通性非常重要。本题要求你编写一个报警程序,当失去一个城市导致国家被分裂为多个无法连通的区域时,就发出红色警报。注意:若该国本来就不完全连通,是分裂的k个区域,而失去一个城市并不改变其他城市之间的连通性,则不要发出警报。

Obliviate的博客 636

L2-3 完全二叉树的层序遍历 (25分) 2020 天梯赛

L2-3 完全二叉树的层序遍历 (25分) 一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是完美二叉树。对于深度为 D 的,有 N 个结点的二叉树,若其结点对应于相同深度完美二叉树的层序遍历的前 N 个结点,这样的树就是完全二叉树。 给定一棵完全二叉树的后序遍历,请你给出这棵树的层序遍历结果。 输入格式: 输入在第一行中给出正整数 N(≤30),即树中结点个数。第二行给出后序遍历序列,为 N 个不超过 100 的正整数。同一行中所有数字都以空格分隔。 输出格式: 在一行中输出该树的层序遍历序列

Chantec的博客 3884

STM32C8T6实战:用PID算法搞定超级电容的10W无线恒功率充电(附代码避坑)

本文详细介绍了如何使用STM32C8T6和PID算法实现超级电容的10W无线恒功率充电。通过优化硬件设计、动态调整PID参数以及三重滤波技术,解决了超级电容充电过程中的功率尖峰和效率问题。附有代码示例和调试经验,帮助开发者快速实现高效稳定的无线充电方案。

weixin_29190169的博客 405

Win10/Win11系统下,用VSCode编译Betaflight固件最全避坑指南(从GCC安装到HEX生成)

本文详细介绍了在Win10/Win11系统下使用VSCode编译Betaflight固件的完整流程,包括GCC安装、环境变量配置、终端选择、Make工具安装等关键步骤,帮助开发者避开常见陷阱,高效生成HEX文件。特别针对VSCode环境优化和编译错误排查提供了实用解决方案。

weixin_42557803的博客 415

2023年团体程序设计天梯赛(含部分题解)

L1-1 最好的文档, L1-2 什么是机器学习, L1-3 程序员买包子, L1-4 进化论, L1-5 猜帽子游戏, L1-6 剪切粘贴, L1-7 分寝室, L1-8 谁管谁叫爹, L2-1 堆宝塔, L2-2 天梯赛的赛场安排, L2-3 锦标赛, L2-4 寻宝图, L3-1 超能力者大赛, L3-2 完美树, L3-3 血染钟楼

G_matinal的博客 1万+

RcisTarget实战:从差异基因到转录因子调控网络的完整分析流程(附代码)

本文详细介绍了RcisTarget工具在转录因子调控网络分析中的完整流程,从差异基因到motif富集分析,再到结果可视化与生物学解读。通过实战代码演示,帮助研究者掌握这一强大的R包应用,揭示基因表达背后的调控机制,特别适用于基因组学和生物信息学研究。

weixin_29214199的博客 228

2023 GPLT 天梯赛 L3-035 完美树 —— 树形DP,状态机,贪心

GPLT 天梯赛 L3-035 完美树 题解 树形DP

lamujiaolian的博客 2334

ENVI 5.6 + Sarscape 5.2 保姆级教程:哨兵一号数据处理全流程(含DEM自动下载)

本文提供ENVI 5.6与Sarscape 5.2处理哨兵一号数据的完整实战教程。详细介绍了从数据导入、研究区裁剪、DEM自动下载与集成,到核心的配准、滤波及地理编码全流程,最终生成可用于定量分析的地理编码后向散射系数图。重点演示了DEM数据在SAR处理中的关键作用与自动获取方法,帮助用户快速掌握SAR数据基础处理技能。

coffee的博客 679

64.企业级案例(上)-金融行业DDD落地全流程支付系统-附架构演进图

本文以金融支付系统为例,完整展示了DDD在企业级项目中的落地流程。首先通过事件风暴识别核心业务领域,包括交易、渠道、账务等限界上下文。在战略设计中划分上下文边界,确定交易上下文为核心域。战术设计聚焦交易上下文,详细设计了支付单聚合、值对象和支付路由服务。架构实现采用CQRS+EDA模式,通过命令端处理交易,查询端异步更新读模型,并利用防腐层隔离外部渠道。案例展示了DDD从业务探索到架构实现的全过程,体现了其在复杂业务系统中的价值。

yonggeit的博客 3037

L2-011. 玩转二叉树-PAT团体程序设计天梯赛GPLT

L2-011. 玩转二叉树 给定一棵二叉树的中序遍历和前序遍历,请你先将树做个镜面反转,再输出反转后的层序遍历的序列。所谓镜面反转,是指将所有非叶结点的左右孩子对换。这里假设键值都是互不相等的正整数。 输入格式: 输入第一行给出一个正整数N( 输出格式: 在一行中输出该树反转后的层序遍历的序列。数字间以1个空格分隔,行首尾不得有多余空格。 输入样例: 7 1

柳婼 の blog 1980

【24E】SWT6652 wifi驱动加载失败问题分析及解决方案

修改驱动配置Kconfig。是由于内存分配失败导致。

wgl307293845的博客 219

团体程序设计天梯赛 L2 题目合集

目前 L1 的题目已经刷完,打算在赛前刷完 L2 的题目。本来想 L2 的题目都写个相对详细的题解的,但是由于时间已经很紧张了,就只能像来记录 L1题目的形式来 L2 的题解了,让我们都好好加油吧。

Veggie的博客 1万+

【光子 AI 】LangGraph:Graph = 有向有环图 + 状态机实现原理详解:数据结构模型与核心算法代码实现逻辑解析

LangGraph核心原理解析:基于Pregel模型的消息传递图,结合有向有环图和状态机特性。关键实现包括:1) 共享状态机制(TypedDict/Pydantic模型)配合Reducer逻辑实现状态更新;2) 图拓扑结构通过邻接表维护节点和条件边;3) 检查点机制支持状态持久化和恢复。运行时采用Pregel循环算法,通过超级步迭代执行节点函数、应用状态归约、条件路由下一批节点,同时支持人工中断和异步并行处理。该架构使LangGraph具备循环执行、条件跳转等DAG无法实现的动态流程控制能力。

AI天才研究院 1035

人像美肤 人体美型 CVPR 2022 ABPN

人像美肤 CVPR 2022 ABPN

jacke121的专栏 841

团体程序设计天梯赛-练习集 L2 阶段全部题解(c/c++版本)

标号 标题 分数 提交通过率 L2-001 紧急救援 25 7808/32856 (23.76%) L2-002 链表去重 25 6263/24874 (25.18%) L2-003 月饼 25 6588/24235 (27.18%) L2-004 这是二叉搜索树吗? 25 4559/13550 (33.65%) L2-005 ...

m0_57006708的博客 3461

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

(团体程序设计天梯赛)L2-011 玩转二叉树 (25 分)

给定一棵二叉树的中序遍历和前序遍历,请你先将树做个镜面反转,再输出反转后的层序遍历的序列。所谓镜面反转,是指将所有非叶结点的左右孩子对换。这里假设键值都是互不相等的正整数。 输入格式: 输入第一行给出一个正整数N(≤30),是二叉树中结点的个数。第二行给出其中序遍历序列。第三行给出其前序遍历序列。数字间以空格分隔。 输出格式: 在一行中输出该树反转后的层序遍历的序列。数字间以1个空格分隔,行首尾不...

xfx's blog 7542

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

团体程序设计天梯赛-练习集-java

团体程序设计天梯赛-练习集-java版本 博客提供题目解析,解题思路,ac代码。 对于无法ac的代码提供相应ac的C++代码

谢谢 啊sir的博客 6121

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

团体程序设计天梯赛 L2-011 玩转二叉树

团体程序设计天梯赛 L2-011 玩转二叉树 题目链接 给定一棵二叉树的中序遍历和前序遍历,请你先将树做个镜面反转,再输出反转后的层序遍历的序列。所谓镜面反转,是指将所有非叶结点的左右孩子对换。这里假设键值都是互不相等的正整数。 输入格式: 输入第一行给出一个正整数N(≤30),是二叉树中结点的个数。第二行给出其中序遍历序列。第三行给出其前序遍历序列。数字间以空格分隔。 输出格式: 在一行中输出该树反转后的层序遍历的序列。数字间以1个空格分隔,行首尾不得有多余空格。 输入样例: 7 1 2 3 4 5 6

旺崽的博客 2541

【CCCC】PAT : 团体程序设计天梯赛-练习集 L2 答案,题解,附代码

【CCCC】PAT : 团体程序设计天梯赛-练习集 L2 答案 鉴定完毕,全部水题 ヾ(•ω•`)o 知识点分类(32): 1、树锯结构(9):二叉树的存储,编号,遍历顺序转换,求深度,底层节点,从底部向上搜索公共祖先。多叉树存储,遍历,求深度。 2、图论模板(3):Dijkstra,图的存储遍历,度数统计。 3、其他结构(7):并查集(4)+链表(2)+栈(1); 4、模拟水题(8):好吧大概有一半数据有点坑; 5、零零碎碎(5):STL(2)+贪心(2)+数学(1); 标号 代码提交 题解链接

小哈里的博客 2633

团体程序设计天梯赛 L2-011 玩转二叉树 (25分)

题目链接: L2-011 玩转二叉树 思路: 先建树再bfs即可,注意逆序 代码: #include<bits/stdc++.h> using namespace std; const int maxn = 2333; int n, in[maxn], pre[maxn]; vector<int> tree[maxn]; void dfs(int x, int ...

Yuhan的博客 339

团体程序设计天梯赛-练习集 L2-011 玩转二叉树

因为没有重复的整数,所以我们直接将树中的每个值作为一个地址,直接递归遍历交换子树的值即可完成反转二叉树,再用队列对整颗树进行层序遍历即可。这题考察建树的综合运用,我们用递归进行前序和中序的建树后。ac code + 注释(ai代写注释)

2501_91263296的博客 214

L2-011 玩转二叉树 (25分)

L2-011 玩转二叉树 (25分) 团体程序设计天梯赛-练习集 问题: 给定一棵二叉树的中序遍历和前序遍历,请你先将树做个镜面反转,再输出反转后的层序遍历的序列。所谓镜面反转,是指将所有非叶结点的左右孩子对换。这里假设键值都是互不相等的正整数。 输入格式: 输入第一行给出一个正整数N(≤30),是二叉树中结点的个数。第二行给出其中序遍历序列。第三行给出其前序遍历序列。数字间以空格分隔。 输出格式: 在一行中输出该树反转后的层序遍历的序列。数字间以1个空格分隔,行首尾不得有多余空格。 输入样例: 7

m0_49337600的博客 324

PTA天梯赛15分以上的题目考点

L2-016 愿天下有情人都是失散多年的兄妹 (25 分) 搜索,字符串。L3-016 二叉搜索树的结构 (30 分) 二叉搜索树、字符串处理。L2-013 红色警报 (25 分) 并查集,搜索,连通分量。L3-010 是否完全二叉搜索树 (30 分) 二叉搜索树。L1-032 Left-pad (20 分) 字符串模拟。L3-011 直捣黄龙 (30 分) 搜索、最短路、图论。L3-014 周游世界 (30 分) 搜索、最短路、图论。L2-019 悄悄关注 (25 分) 字符串模拟,排序。

qq_46143063的博客 1466
上一篇: 团体程序设计天梯赛(L2-010 排座位 (25 分))
下一篇: 团体程序设计天梯赛(L2-012 关于堆的判断 (25 分))
郭晋龙
博客等级 码龄6年 940粉丝 449原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郭晋龙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值