pta 树

L2-006 树的遍历 - 团体程序设计天梯赛-练习集

#include <bits/stdc++.h>
#define int long long
#define x first
#define y second
using namespace std;
const int N=35;
pair<int,int> tree[N];
int post[N],in[N];
int n;
int build(int la,int lb,int ra,int rb)
{if(la>lb||ra>rb)return 0;int root=post[rb];int p=la;while(in[p]!=root)p++;int cnt=p-la;tree[root].x=build(la,p-1,ra,ra+cnt-1);tree[root].y=build(p+1,lb,ra+cnt,rb-1);return root;
}
void dfs(int root)
{queue<int>q;vector<int>ans;q.push(root);while(q.size()){int t=q.front();q.pop();ans.push_back(t);if(tree[t].x) q.push(tree[t].x);if(tree[t].y) q.push(tree[t].y);}for(int i=0;i<ans.size();i++){if(!i)  cout<<ans[i];elsecout<<' '<<ans[i];}
}
signed main()
{ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);cin>>n;for(int i=1;i<=n;i++)cin>>post[i];for(int i=1;i<=n;i++)cin>>in[i];int root=build(1,n,1,n);dfs(root);
return 0;
}

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

#include "bits/stdc++.h"
#define int long long
using namespace std;
vector<int>ans;
int n;
int a[1000000];
void dfs1(int root,int tail)
{if(root>tail) return;int l=root+1,r=tail;while(a[l]<a[root]&&l<=tail) l++;while(a[r]>=a[root]&&r>=root+1) r--;if(l-r!=1) return;dfs1(root+1,r);dfs1(l,tail);ans.push_back(a[root]); 
}
void dfs2(int root,int tail)
{if(root>tail) return;int l=root+1,r=tail;while(a[l]>=a[root]&&l<=tail) l++;while(a[r]<a[root]&&r>root) r--;if(l-r!=1) return;dfs2(root+1,r);dfs2(l,tail);ans.push_back(a[root]); 
}
signed main()
{ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);cin>>n;for(int i=0;i<n;i++)cin>>a[i];if(a[0]>a[1])dfs1(0,n-1);elsedfs2(0,n-1);if(ans.size()==n){cout<<"YES"<<'\n';for(int i=0;i<n;i++)if(i==n-1)cout<<ans[i];elsecout<<ans[i]<<' ';cout<<'\n';}elsecout<<"NO"<<'\n';
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/59844.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Transformer 中的残差连接:为什么在正则化前加入残差?

7. Residual Connection Transformer 中的残差连接&#xff1a;为什么在正则化前加入残差&#xff1f; Transformer 中的编码器块&#xff08;EncoderBlock&#xff09;设计了一项重要的结构&#xff1a;残差连接&#xff08;Residual Connection&#xff09;&#xff0c;即在…

大语言模型LLMs在医学领域的最新进展总结

我是娜姐 迪娜学姐 &#xff0c;一个SCI医学期刊编辑&#xff0c;探索用AI工具提效论文写作和发表。 相比其他学科&#xff0c;医学AI&#xff0c;是发表学术成果最多的领域。 医学数据的多样性和复杂性&#xff08;包括文本、图像、基因组数据等&#xff09;&#xff0c;使得…

15分钟学 Go 第 43 天:前端与Go的结合

第43天&#xff1a;前端与Go的结合 目标&#xff1a;了解Go如何与前端交互&#xff0c;前端使用Vue.js 在现代Web开发中&#xff0c;Go语言常用于后端开发&#xff0c;而Vue.js是一个流行的前端框架&#xff0c;用于构建用户界面。结合二者&#xff0c;可以构建高效、可维护的…

项目:使用LNMP搭建私有云存储

一、准备工作 恢复快照&#xff0c;关闭安全软件 systemctl status firewalld //检查防火墙是否关闭getenforce //查看SElinux的执行状态which nmcli //检查虚拟机网络状态 二、搭建LNMP环境 yum -y nstall nginx mariadb-server php* //搭建环境三、上传软件 …

初学者指南:用例图——开启您的软件工程之旅

目录 背景&#xff1a; 基本组成&#xff1a; 关联&#xff08;Assciation&#xff09;&#xff1a; 包含&#xff08;Include&#xff09;&#xff1a; 扩展&#xff08;Extend&#xff09;&#xff1a; 泛化&#xff08;Inheritance&#xff09;&#xff1a; 完整银行…

针对oneplus6 怎么选择lineage源码的什么分支

针对oneplus6 怎么选择lineage源码的什么分支 &#xff1a; 先刷入 官方LineageOS-20 从而正常启动, 正常启动 说明 官方LineageOS-20 中的驱动是正常的 再用 编译LineageOS源码的分支20 &#xff0c;并用https://github.com/LineageOS/android_device_oneplus_enchilada/blob…

Python yeild关键字

定义生成器函数 def sync_generator(n):for i in range(n):yield i python复制代码 def sync_generator(n): 定义了一个名为 sync_generator 的函数&#xff0c;它接受一个参数 n。for i in range(n): 在函数内部&#xff0c;有一个 for 循环&#xff0c;它遍历从 0 到 n-1 …

linux进程的状态之环境变量

我们在前面了解了进程的状态及相关概念 接下来我们接着上一篇进程的状态接着了解环境变量 进程的状态 文章目录 目录 文章目录 前言 二、环境变量 1、常见环境变量 2、查看环境变量 3、修改PATH 4、HOME 5、PATH ​编辑 6、和环境变量相关的命令 三、环境变量的组织…

什么是Flutter,有什么特点

Flutter 简介 Flutter 是由 Google 开发的一个开源 UI 软件开发工具包&#xff0c;用于构建跨平台的移动、Web 和桌面应用。Flutter 使用 Dart 语言编写&#xff0c;旨在提供高性能、美观且一致的用户界面。Flutter 的设计目标是让开发者能够使用一套代码库在多个平台上构建高…

仪表板展示|DataEase看中国:历年双十一电商销售数据分析

背景介绍 2024年“双十一”购物季正在火热进行中。自2009年首次推出至今&#xff0c;“双十一”已经成为中国乃至全球最大的购物狂欢节&#xff0c;并且延伸到了全球范围内的电子商务平台。随着人们消费水平的提升以及电子商务的普及&#xff0c;线上销售模式也逐渐呈现多元化…

ChatGLM2-6B微调记录【2】

模型推理测试 微调前的chatglm2-6b模型运行python predict.py --mode glm2 --model_path chatglm2-6b/运行结果记录 /data/user23262833/.conda/envs/chatglm/lib/python3.8/site-packages/transformers/utils/generic.py:311: FutureWarning: torch.utils._pytree._register…

置信传播算法复现

本文所涉及所有资源均在 传知代码平台 可获取。 目录 一.背景及意义介绍 1. 实际应用广泛 2. 理论研究重要性

操作系统-设备管理

一、中断的基本概念 中断是指在计算机执行程序的过程中&#xff0c;出现了某种紧急或异常的事件&#xff08;中断请求&#xff09;&#xff0c;CPU需要暂停正在执行的程序&#xff0c;转去处理该事件&#xff08;执行中断服务程序&#xff09;&#xff0c;并在处理完毕后返回断…

读数据工程之道:设计和构建健壮的数据系统32序列化和云网络

1. 序列化 1.1. 仅仅通过从CSV转换到Parquet序列化&#xff0c;任务性能就提高了上百倍 1.2. 基于行的序列化 1.2.1. 基于行的序列化是按行来组织数据 1.2.2. 对于那些半结构化的数据&#xff08;支持嵌套和模式变化的数据对象&#xff09;​&#xff0c;基于行的序列化需要…

R树、Quad树 (Quad Tree)数据结构详细解读

一、R 树 (R-Tree) R 树&#xff08;R-Tree&#xff09; 是一种 树形数据结构&#xff0c;主要用于在 多维空间&#xff08;如 2D 或 3D 空间&#xff09;中存储和检索 空间对象。R 树的设计目标是支持高效的 区域查询&#xff08;range query&#xff09; 和 邻近查询&#x…

【软件工程】ATAM架构权衡评估方法

ATAM架构权衡评估方法 概述质量属性有哪些&#xff1f;质量属性的效用树怎么构建&#xff1f;如何确定质量属性的优先级&#xff1f; 概述 ATAM&#xff08;Architecture Tradeoff Analysis Method&#xff09;是一种系统架构评估方法&#xff0c;由卡梅隆大学软件工程协会提出…

了解数据库分区

分区是将一个表或索引按照某种规则划分为多个更小的、更易于管理的部分。分区是将表的数据分成更小、更易于管理的部分的过程。分区有一些显著的好处&#xff0c;包括改善查询性能、增强数据库的可用性和可维护性。 1.为什么要分区&#xff1f; 表分区&#xff08;Partitioning…

深度学习:Cross-attention详解

Cross-attention详解 Cross-attention&#xff0c;也称为编码器-解码器注意力&#xff0c;是Transformer架构中的一个关键组件&#xff0c;特别用于在解码器中整合来自编码器的信息。这种机制允许解码器在生成每个输出时&#xff0c;利用整个输入序列的上下文信息&#xff0c;…

09 顺序表的修改操作

顺序表的修改操作 一、数据修改 ​ 操作的步骤&#xff1a; ​ 1&#xff09;判断顺序表是否为空&#xff0c;如果没有数据&#xff0c;操作失败&#xff1b; ​ 2&#xff09;判断修改位置是否合理&#xff0c;不合理则操作失败&#xff1b; ​ 3&#xff09;将i位置中的数…

深度学习⑨GANs

Discriminative and Generative Models Deep learning中主要两种模型 判别模型专注于从输入预测输出,例如分类任务。学习数据点和标签之间的特征 生成模型则试图理解数据是如何产生的,能够生成新的数据样本。理解数据分布和是否可以被预测 Quiz time: Discriminative mo…