2-10 出栈序列的合法性 (20 分)_给定一个最大容量为 m 的堆栈,将 n 个数字按 1, 2, 3, ..., n 的顺序入栈,允许按-程序员宅基地

技术标签: C++  c++  # 堆栈  堆栈  数据结构  

2-10 出栈序列的合法性 (20 分)

给定一个最大容量为 M 的堆栈,将 N 个数字按 1, 2, 3, ..., N 的顺序入栈,允许按任何顺序出栈,则哪些数字序列是不可能得到的?例如给定 M=5、N=7,则我们有可能得到{ 1, 2, 3, 4, 5, 6, 7 },但不可能得到{ 3, 2, 1, 7, 5, 6, 4 }。

输入格式:

输入第一行给出 3 个不超过 1000 的正整数:M(堆栈最大容量)、N(入栈元素个数)、K(待检查的出栈序列个数)。最后 K 行,每行给出 N 个数字的出栈序列。所有同行数字以空格间隔。

输出格式:

对每一行出栈序列,如果其的确是有可能得到的合法序列,就在一行中输出YES,否则输出NO

输入样例:

5 7 5
1 2 3 4 5 6 7
3 2 1 7 5 6 4
7 6 5 4 3 2 1
5 6 4 3 7 2 1
1 7 6 5 4 3 2

输出样例:

YES
NO
NO
YES
NO

姊妹题2-9 彩虹瓶 (20 分)

找了好几个小时bug都没找到,原来是测试样例里的 5 7 5 ,两个五的参数读入读反了,(都怪我没读题呀~)

判断合法性用一个模拟堆栈就行了

 

#include<iostream>
using namespace std;
int a,b,c,n,zhan[100005];
int legal(){
	int top=0,flag=1,next=1;
	for(int i=0;i<b;i++){
		cin>>n;
		while(zhan[top]<n){zhan[++top]=next++;}
		if(top<=c && zhan[top]==n)top--; 
		else flag=0;
	}
	return flag;
}
int main(){
	cin>>c>>b>>a;
	for(int i=0;i<a;i++)cout<<(legal()?"YES":"NO")<<endl;
	return 0;
}

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/shiliang97/article/details/101147545

智能推荐

Linux 指令lsblk 作用,以及查看cpu使用情况和磁盘IO iostat指令详解

(列表块设备)命令是一个非常实用的工具,用于显示所有可用的块设备信息,如硬盘、USB驱动器、SD卡以及它们的分区。这个命令以易于理解的树状结构展示这些信息,清晰地表明了设备间的层次关系和依赖性。是一个用于监控Linux系统中CPU使用情况和磁盘I/O统计信息的命令行工具,它是sysstat包的一部分。行中的数据,你可以大致了解系统的CPU资源是如何被分配和使用的,进而判断是否存在CPU瓶颈或者I/O等待等问题。可以帮助识别系统中的I/O瓶颈,监控磁盘活动,并据此进行性能调优或问题诊断。在Linux系统中,

第六天----数据结构笔记_路径点和边重复-程序员宅基地

文章浏览阅读495次。笔记参考文章1、1.图根据边是否有方向,将图可以划分为:无向图和有向图。2.一条边上的两个顶点叫做邻接点。3.在无向图中,某个顶点的度是邻接到该顶点的边(或弧)的数目。4.在有向图中,顶点的度=入度+出度。–顶点的入边,是指以该顶点为终点的边。而顶点的出边,则是指以该顶点为起点的边。–某个顶点的入度,是指以该顶点为终点的边的数目。而顶点的出度,则是指以该顶点为起点的边的数目。5.路径:如果顶点(Vm)到顶点(Vn)之间存在一个顶点序列。则表示Vm到Vn是一条路径。–路径长度:路径中"_路径点和边重复

[word技巧]把标题、图表题注编号由“一.1”改为"1.1"_word 图一.1-程序员宅基地

文章浏览阅读4.1w次,点赞6次,收藏31次。[word技巧]把标题、图表题注编号由“一.1”改为"1.1"_word 图一.1

python编程语言的缺点-常见的AI编程语言优缺点比较,程序员千万不要入错行!...-程序员宅基地

文章浏览阅读228次。原标题:常见的AI编程语言优缺点比较,程序员千万不要入错行!人工智能编程是一种技术的提升,为不同公司的运营和人们的生活带来了极高的效率和最佳效益。 人工智能为不同的行业带来了另一种智能技术,其潜力的前景仍在增长,期望它能够达到人类的智慧。 这是因为开发人员愿意探索,试验和实施其能力,以满足更多的人力和组织需求。 毕竟,需求是发明之母。 就像在大多数软件应用程序的开发中一样,开发人员可以使用各种语言..._ai python 跟语言无关

产品经理功法修炼(2)之专业技能-程序员宅基地

文章浏览阅读1.2k次,点赞23次,收藏30次。产品经理的能力修炼并非局限于某一技能的速成,而是需要全面参与到产品的整个生命周期中,通过不断的实践来逐步提升自己的各项能力。尽管在企业的日常运作中,我们不可能身兼数职去扮演每一个角色,但作为产品的核心负责人,我们必须进行系统性的学习,以深化对产品管理的理解和认知。作为产品管理的组织者、策划者和实施者,产品经理需紧密围绕目标市场,深入开展市场调研、市场定位和市场细分工作。同时,还需全面考虑产品策略、价格策略、渠道策略、促销策略、公关策略以及服务策略等多个方面,以确保营销工作的全面性和有效性。

立创EDA软件专业版 图示入门操作(全)_立创eda专业版-程序员宅基地

文章浏览阅读7.1k次,点赞17次,收藏178次。电子产品设计的基本流程包括项目启动,市场调研,项目规划,项目详细设计,原理图设计,PCB布局、布线,PCB制板、焊接,功能、性能测试等环节,我们在教学过程中,一般按下面的步骤进行电子产品设计:第一步:获取产品需要实现的功能;第二步:确定设计方案,列出需要的元件清单;第三步:根据元件清单,绘制元件符号库;第四步:根据需要设计的功能,调用元件符号库,绘制原理图,用仿真软件进行仿真;第五步:根据实际的元件外形,绘制元件封装库;第六步:根据原理图,调用元件封装库,绘制PCB图;第七步:PCB打样制作。_立创eda专业版

随便推点

flutter开发实战-混淆minifyEnabled及shrinkResources

flutter开发实战-混淆minifyEnabled及shrinkResources,这里不需要混淆,暂时关闭。学习记录,每天不停进步。

DSP开发实战教程-国产DSP替代进口TI DSP的使用技巧

复制进芯电子国产DSP官网提供的配置文件。

2024五一数学建模竞赛(五一赛)选题建议+初步分析

提示:DS C君认为的难度:B>A>C,开放度:A=B

AI大模型探索之路-训练篇6:大语言模型预训练数据准备-预处理

随着人工智能技术的不断发展,大语言模型在自然语言处理、机器翻译、文本生成等领域取得了显著的成果。然而,训练一个高性能的大语言模型需要大量的高质量预训练数据。本文将详细介绍大语言模型预训练数据准备的各个环节,包括数据来源、质量过滤、去重过滤、敏感过滤以及数据影响分析等。希望通过本文的介绍,能够帮助读者更好地理解和应用大语言模型预训练数据的准备过程。大语言模型预训练数据准备是实现高性能模型的关键步骤。本文从数据来源、质量过滤、去重过滤、敏感过滤以及数据影响分析等多个方面进行了详细的介绍。

最新版两款不同版SEO超级外链工具PHP源码-程序员宅基地

文章浏览阅读674次。外链工具只是网站推广的辅助工具,一般适用于短时间内无法建设大量外链的新站,新站应坚持每天做一到两次为宜,大约一周左右能看到效果。老站不建议使用此类工具,老站应以优质内容建设为主,辅以交换优质的友情链接和高权重站点发布软文来建立外链方为上策。#已更新增加大量高质量外链(若需要增加修改其他外链请打开txt文件)可根据个人感觉喜好自行任意选择不同版本使用(版V1或版V2)请将zip文件全部解压缩即可访问!源码全部开源,支持上传二级目录访问。源码为自适应端,手机和电脑端都适配。抄笔记 (chaobiji.cn)

2014找工作总结-机会往往留给有准备的人_nginx 机会给有准备的人-程序员宅基地

文章浏览阅读1.8w次。好基友的文章必须转,大神一枚:出处:http://blog.csdn.net/xiajun07061225/article/details/12844801 其实我的求职过程在十一之前就已经结束了,总体讲比较顺利。参加面试的几家公司基本都拿到了offer,分别是阿里巴巴、美团网、创新工场涂鸦移动以及华为。当时也参加了其他公司的面试,比如人人,一面过后收到了二面通知,_nginx 机会给有准备的人