团体程序设计天梯赛(L2-004 这是二叉搜索树吗? (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 阅读详情

题目:

思路分析:

二叉搜索树的前序遍历分为三部分 就是第一个数是树根  第二部分都是小于第一个数的部分

第三部分是大于第一个数的部分 按照这样的思路我们递归就可以把树展开 然后按照后序遍

历的特征递归输出

代码实现:

const int MAX=1010;
int a[MAX];
int f=0;
int n;
vector<int>ans;
void dfs(int head,int tail){
    if(head>tail) return;
    int now=a[head];
    int i=head+1;
    int j=tail;
    if(!f){
        while (i<=tail&&a[i]<now) {
            i++;
        }
        while (j>head&&a[j]>=now) {
            j--;
        }
    }
    else {
        while (i<=tail&&a[i]>=now) {
            i++;
        }
        while (j>head&&a[j]<now) {
            j--;
        }
    }
    if(i-j!=1) return;
    dfs(head+1,j);
    dfs(i,tail);
    ans.push_back(now);
    
}
int main(){
    cin>>n;
    for(int i=0;i<n;i++)
        cin>>a[i];
    dfs(0,n-1);
    if(ans.size()!=n){
        ans.clear();
        f=1;
        dfs(0,n-1);
    }
    if(ans.size()!=n){
        cout<<"NO"<<endl;
    }
    else {
        cout<<"YES"<<endl;
        f=0;
        for(auto i:ans){
            if(f++!=0)cout<<" ";
            cout<<i;
        }
    }
}

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

相关推荐

团体程序设计天梯赛-L2题解

团体程序设计天梯赛-L2题解 L2-002 链表去重 (25分) #include <bits/stdc++.h> using namespace std; struct node { int key; int next; } add[100005]; int f[100005]; int a1[100005], a2[100005]; int main() { int l, n; cin >> l >> n; for (int i

RenWeitao的博客 909

L2-004 这是二叉搜索树吗?

一棵二叉搜索树可被递归地定义为具有下列性质的二叉树:对于任一结点, 其左子树中所有结点的键值小于该结点的键值; 其右子树中所有结点的键值大于等于该结点的键值; 其左右子树都是二叉搜索树。 所谓二叉搜索树的“镜像”,即将所有结点的左右子树对换位置后所得到的树。 给定一个整数键值序列,现请你编写程序,判断这是否是对一棵二叉搜索树或其镜像进行前序遍历的结果。 输入格式: 输入的第一行给出正整...

沐妖的博客 1802

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

【天梯赛】L2-004 这是二叉搜索树吗(经典问题C++)

如果检验失败就直接跳过后面遍历return,这样post.size()!=N就反映出了检验失败的情况。,如pre = {2,3,4},递归函数用if(root == tail) return;// 用ismirror来将一般二叉树和镜像二叉搜索树的情况对应操作放在同一个函数中。存下当前的根节点的值进post,就得到了后序遍历序列。插入检验左子树和右子树中的所有元素是否都分别小于和大于根节点的值。//镜像树满足:左子树>根节点>右子树。

H13420972436的博客 542

GPLT团体程序设计天梯赛题解L2部分

文章目录00xL2-001 紧急救援 (25 分)L2-002 链表去重 (25 分)L2-003 月饼 (25 分)L2-004 这是二叉搜索树吗? (25 分)L2-008 最长对称子串 (25 分)L2-009 抢红包 (25 分)01xL2-010 排座位 (25 分)L2-012 关于堆的判断 (25 分)L2-013 红色警报 (25 分)L2-014 列车调度 (25 分)L2-015 互评成绩 (25 分)L2-016 愿天下有情人都是失散多年的兄妹 (25 分)L2-017 人以群分 (2

优快云 基本不怎么用了,可以关注我的个人博客:https://chensl.me 1354

Vlan的封装模式和端口讲解(Access、Trunk、Hypbrid端口)

Vlan(Virtual Local Area Network)虚拟局域网,将一个物理的LAN在逻辑上划分为多个广播域,在交换机上实现广播域隔离(增强局域网的安全性、限制广播风暴、简化网络管理)Vlan通过将二层数据帧打上Vlan标签(打上Vlan标签也就是封装Vlan),正常情况下,不同Vlan Tag的数据包是无法二层直接互访的,以此来实现广播域的隔离可以理解为一个Vlan对应一个广播域,同一Vlan内的主机可以二层直接通信,不同Vlan间的主机无法二层直接通信。

m0_49864110的博客 5642

团体程序设计天梯赛-练习集 L2-004 这是二叉搜索树吗? (25 分)

题目大意:给你一串序列,问你如果这串序列是二叉树搜索树的前序遍历序列或者是其镜像(所有子树左右结点交换)的前序遍历序列的话,输出YES,然后打印出该序列的后序遍历序列,否则输出NO。 解题思路:设置一个变量ismirror,记录是否是镜像,用一个判断函数,设置两个指针i和j,如果不是镜像分别根据二叉搜索树的性质找到第一个大于等于根节点的元素,和第最后一个小于根节点的元素,这时i指向的就是右子树的根节点,j指向的就是左子树的尾结点,分别递归左右子树,这里递归的顺序也是有讲究的,因为他让我们求的是后...

weixin_54562114的博客 2360

不用FFmpeg!纯前端实现RTSP直播的3种现代方案对比(WebSocket/Wasm/WebCodecs)

本文深入探讨了纯前端实现RTSP直播的三种现代技术方案:WebSocket代理转发、Wasm解码和WebCodecs硬解。通过详细的架构设计、性能实测数据和兼容性分析,帮助开发者在安防监控、智慧城市等场景中选择最佳方案,实现低延迟、高效率的视频流处理。

lilh34434的博客 231

搜索树判断 (25分)&&这是二叉搜索树吗(25分) (附分析)

一棵二叉搜索树可被递归地定义为具有下列性质的二叉树:对于任一结点, 其左子树中所有结点的键值小于该结点的键值; 其右子树中所有结点的键值大于等于该结点的键值; 其左右子树都是二叉搜索树。 所谓二叉搜索树的“镜像”,即将所有结点的左右子树对换位置后所得到的树。 给定一个整数键值序列,现请你编写程序,判断这是否是对一棵二叉搜索树或其镜像进行前序遍历的结果。 输入格式: 输入的第一行给出正整数 N(≤1000)。随后一行给出 N 个整数键值,其间以空格分隔。 输出格式: 如果输入序列是对一棵二叉搜索树或其镜像进行

xxxibgdrgn博客 755

无需Root!用VirtualXposed+JustTrustMe在安卓高版本上抓包拼多多API数据

本文详细介绍了在安卓高版本设备上无需Root权限即可抓取拼多多API数据的完整方案,通过VirtualXposed与JustTrustMe组合技术,有效绕过SSL Pinning限制。文章涵盖工具准备、环境配置、应用处理及实战分析,特别针对PDD应用的混合通信策略提供了专业解决方案,适合开发者进行竞品分析和数据采集。

weixin_28678151的博客 453

【寄存器模型】一、一个简单的寄存器模型

在描述寄存器模型之前,首先来了解一下实际寄存器的组成结构:如下图所示的DUT内部真实的寄存器寄存器中最小的一个单位是域(field),域是由一个或多个bit拼接而成的。一个或多个域就构成了一个寄存器(reg)。一个或多个寄存器就构成了一个块(block)。将DUT中的寄存器抽象出来,建立寄存器模型,如下图所示:uvm library已经定义好了field、reg、block等相关的概念,构建寄存器模型时,只需要继承这些类即可。:构建寄存器模型中的域段。uvm_reg。...

carrotbanana的博客 5368

天梯赛---这是二叉搜索树吗?

题目链接:https://pintia.cn/problem-sets/994805046380707840/problems/994805070971912192 L2-004 这是二叉搜索树吗? (25 分) 一棵二叉搜索树可被递归地定义为具有下列性质的二叉树:对于任一结点, 其左子树中所有结点的键值小于该结点的键值; 其右子树中所有结点的键值大于等于该结点的键值; 其左右子树都是二叉搜索树。 所谓二叉搜索树的“镜像”,即将所有结点的左右子树对换位置后所得到的树。 给定一个整数键值序列,现

weixin_44757834的博客 445

深入理解EtherCAT状态机:从IGH代码看伺服电机如何从‘上电’到‘使能’

本文深入解析EtherCAT状态机的工作原理,重点探讨伺服电机从'上电'到'使能'的状态转换过程。通过分析状态字(Status Word)和控制字(Control Word)的交互机制,结合IGH代码实例,揭示DS402状态机的核心逻辑,帮助工程师解决60%以上的伺服控制问题,提升EtherCAT网络调试效率。

weixin_42549037的博客 288

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

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

Veggie的博客 1万+

保姆级教程:用Jetson Orin Nano和ROS2 Humble搞定PIXhawk 4飞控通信(含配置文件详解)

本文提供了一份详细的Jetson Orin Nano与PIXhawk 4飞控通信配置指南,涵盖硬件连接、ROS2 Humble环境搭建、MAVROS2配置及通信调试全流程。通过实战案例和配置文件详解,帮助开发者快速实现无人机上位机与飞控的稳定通信,适用于无人机开发与自动化控制场景。

weixin_33670786的博客 475

YOLOv11在STM32H7上的MCU部署实战:基于CMSIS-NN的高效推理实现

嵌入式AI与MCU部署技术解析 本文系统介绍了基于STM32H7微控制器的YOLOv11模型部署方案。主要内容包括: 边缘计算背景下MCU的AI部署优势与挑战,重点分析了STM32H7平台特性 YOLOv11模型的结构优化,包括E-ELAN骨干网络和Meta-ACON激活函数等改进 CMSIS-NN加速库的架构原理,在STM32H743上可实现5.4倍卷积加速 完整的开发环境搭建流程,涵盖硬件选型、工具链配置和模型转换 模型优化关键技术,包括int8量化、剪枝和内存占用优化等 实验表明,该方案在保持模型精度

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 853

团体程序设计天梯赛-练习集 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

[QMT量化交易小白入门]-七十一、十年回测ETF动量策略,超额年化收益率为10.6%

本专栏主要是介绍QMT的基础用法,常见函数,写策略的方法,也会分享一些量化交易的思路,大概会写100篇左右。QMT的相关资料较少,在使用过程中不断的摸索,遇到了一些问题,记录下来和大家一起沟通,共同进步。

木头大左的博客 1854

团体程序设计天梯赛L2题解

由于目前网上容易搜索到的PTA-L2题解写法往往较为复杂,难以跟上最新的XCPC风格,比如链式向前星等方法使用STL库更为简单,本人将大二期间写的一些关于L2的代码作收集,方便大家观看~以后会考虑将每题写上题解的,下次一定一定~有些题目当时拿了23/24飘过的就没补,在下面就不放了~有问题欢迎评论区咨询。

2301_76650919的博客 1298

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

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

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

谢谢 啊sir的博客 6121

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

L2-004 这是二叉搜索树吗?-团体程序设计天梯赛GPLT

题目来源:团体程序设计天梯赛-练习集 题目地址:L2-004 这是二叉搜索树吗? 题目大意 给定一个长度为 nnn 的序列,判断这是否是对一棵二叉搜索树或其镜像进行前序遍历的结果。如果是,则在一行中输出 YES ,然后在下一行输出该树后序遍历的结果,否者直接输出 NO。 题目分析 1. 预备知识 前序遍历:先访问根节点,再遍历左子树,最后遍历右子树。 后序遍历:先遍历左子树,再遍历右子树,最...

Veggie的博客 1万+

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

团体程序设计天梯赛 L2-004 这是二叉搜索树吗?

团体程序设计天梯赛 L2-004 这是二叉搜索树吗? 题目链接 一棵二叉搜索树可被递归地定义为具有下列性质的二叉树:对于任一结点, 其左子树中所有结点的键值小于该结点的键值; 其右子树中所有结点的键值大于等于该结点的键值; 其左右子树都是二叉搜索树。 所谓二叉搜索树的“镜像”,即将所有结点的左右子树对换位置后所得到的树。 给定一个整数键值序列,现请你编写程序,判断这是否是对一棵二叉搜索树或其镜像进行前序遍历的结果。 输入格式: 输入的第一行给出正整数 N(≤1000)。随后一行给出 N 个整数键值,其间

旺崽的博客 2420

【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

PTA团体程序设计天梯赛L2真题讲解L2-001-004

PTA团体程序设计天梯赛L2真题讲解L2-001-004

2401_87563614的博客 602

团体程序设计天梯赛 L2-004 这是二叉搜索树吗? (25分)

题目链接: L2-004 这是二叉搜索树吗? (25分) 思路: 非镜像和镜像需要分开单独进行搜索; 按非镜像/镜像规则将前序序列严格转化为后序序列,如果序列个数不足n个那说明不符合当前规则; 均不符合我们就输出NO; 代码: #include<bits/stdc++.h> using namespace std; int n, a[1005]; vector<int...

Yuhan的博客 1007

L2-004 这是二叉搜索树吗? (25分)

L2-004 这是二叉搜索树吗? (25分) 团体程序设计天梯赛-练习集 问题: 一棵二叉搜索树可被递归地定义为具有下列性质的二叉树:对于任一结点, 其左子树中所有结点的键值小于该结点的键值; 其右子树中所有结点的键值大于等于该结点的键值; 其左右子树都是二叉搜索树。 所谓二叉搜索树的“镜像”,即将所有结点的左右子树对换位置后所得到的树。 给定一个整数键值序列,现请你编写程序,判断这是否是对一棵二叉搜索树或其镜像进行前序遍历的结果。 输入格式: 输入的第一行给出正整数 N(≤1000)。随后一行给

m0_49337600的博客 452
上一篇: 团体程序设计天梯赛(L2-003 月饼 (25 分))
下一篇: 团体程序设计天梯赛(L2-005 集合相似度 (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、付费专栏及课程。

余额充值