铁轨问题 栈的运用

是这几天学习紫书遇到的一个问题 之前在学校的时候尝试着做过
题目如下
题目
自己大概知道是这么个意思 C就相当于一个栈 进去的车厢只能倒着出来 后进去的就先出来
代码里不精 还是照着书上的打了一遍 花了一个下午理解了

#include<cstdio>
#include<stack>
using namespace std;
const int MAXN = 1000 + 10;int n, target[MAXN];int main()
{while (scanf("%d", &n) == 1){stack<int>s;int A = 1, B = 1;for (int i = 1; i <= n; i++)scanf("%d", &target[i]);int ok = 1;while (B <= n){if (A == target[B]) { A++; B++; }else if (!s.empty() && s.top() == target[B]) { s.pop(); B++; }else if (A <= n)s.push(A++);else { ok = 0; break; }}printf("%s\n", ok ? "YES" : "NO");}return 0;
}

之所以之前未理解到是因为自己一直只想到了用两个容器 自然就不懂一个栈和A居然还有个B
自己理解一遍大概是这样target数组中存放的是出去后的火车队 判断进站前按照12345顺序的火车是否可以通过一个站台C(栈)来实现出去的火车队
关键就是这三个判断语句
如果A(当前进站的火车头)等于target【B】(当前应该出站的火车头)那么他们是可以实现的 跳过然后判断下一个进站的火车头和下一个应该出站的火车头
如果不相等 判断下一条语句
如果栈C不为空并且栈顶元素就等于当前应该出站的火车号的话 那么就让它出栈出站 然后判断下一个
如果不满足这个条件 则继续下一个判断
加如A(当前进站车厢的号)小于等于n(车厢数量) 也就是说栈顶的元素不能出站满足条件 当前可以进站的元素也不满足条件 那就只有让它进栈了
否则—如果连进栈的机会都没有了(所以进站的车厢都在栈里或者出站了) 那么前面又没有满足条件出站的车厢 那么就已经不能满足题目条件了 直接break;跳出循环就可以了
栈的几个主要操作是可以应用了 只是运用在做题里对我而言还有难度

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

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

相关文章

栈的应用:火车调度问题

栈的应用&#xff1a;火车调度 问题概述 输入第一行是一个整数N&#xff0c;表示车厢的数量&#xff1b;第二行是一个由Y于R组成的字符串&#xff0c;表示车厢的排列&#xff0c;其中Y表示硬座&#xff0c;R表示软座。我们的任务&#xff0c;是借助一个栈&#xff0c;使得车厢…

火车进站问题-HDUOJ

火车进站问题 问题描述 假设杭州东火车站只有一条铁路&#xff0c;并且所有火车都从一侧进来&#xff0c;从另一侧出去。那么&#xff0c;如果火车A先进站&#xff0c;然后火车B在火车A离开之前就进站&#xff0c;那么火车A直到火车B离开后才能离开&#xff0c;可参见下图。 现…

深圳大学第三期“飞鹰计划”正式开班|学以致用,扬帆起航!

金秋九月&#xff0c;丹桂飘香&#xff0c;在这个充满着收获的季节里&#xff0c;迎来了期待已久的深圳大学机电与控制工程学院飞鹰计划2022级第三期开班典礼。受疫情影响&#xff0c;虽然典礼只能在线上举行&#xff0c;但是丝毫不影响电巢专家及学生们的热情。9月17日下午&am…

写了10 年的代码,收藏了这 20 个代码生成框架!

点击上方“Java基基”&#xff0c;选择“设为星标” 做积极的人&#xff0c;而不是积极废人&#xff01; 源码精品专栏 原创 | Java 2020 超神之路&#xff0c;很肝~中文详细注释的开源项目RPC 框架 Dubbo 源码解析网络应用框架 Netty 源码解析消息中间件 RocketMQ 源码解析数…

matlab偏最小二乘截距,matlab代写偏最小二乘回归(PLSR)和主成分回归(PCR)

原标题&#xff1a;matlab代写偏最小二乘回归(PLSR)和主成分回归(PCR) 原文&#xff1a;http://tecdat.cn/?p2655 此示例显示如何在matlab中应用偏最小二乘回归(PLSR)和主成分回归(PCR)&#xff0c;并讨论这两种方法的有效性。当存在大量预测变量时&#xff0c;PLSR和PCR都是对…

水上飞鹰(Z缓存alpha混合)

程序的描述:水上飞鹰(Z缓存alpha混合) 作者:lun 创建日期:2005-10-5 版本:0.1 编译环境:WIN2000 VC6 SP6 DXSDK 驾驶你水上飞艇! 穿越重重危险! 程序下载地址 http://www.wungaonline.com/read.php?tid-100.html

从中关村到纳斯达克,龚宇的奇异8年与爱奇艺的全新时代

十余载岁月风云&#xff0c;视频江湖风起云涌&#xff0c;大浪淘沙后爱奇艺、腾讯视频、优酷土豆三足鼎立之势已成。 北京时间 3 月 29 日晚间&#xff0c;爱奇艺在美国纳斯达克市场敲钟上市&#xff0c;证券代码为IQ&#xff0c;IPO 定价每股 18 美元&#xff0c;照此计算&am…

linux写c语言工具,Linux下用C语言实现推箱子游戏

前面有Linux的常用命令和vim文本编辑器还没有介绍&#xff0c;之后我会补上的。 今天来介绍如何用C语言写一个简单的小游戏&#xff0c;叫做“小老鼠推箱子”。虽然游戏的编写过程不复杂&#xff0c;但是我觉得能够从中找到自己对于编程的不足和完善自己的编程思维是最重要的。…

错别字检测的软件有哪些?自动检查错别字的工具 文字校对 文本纠错 查错别字 校对软件 错别字检查 论文格式 在线校对

我们日常生活中&#xff0c;无论从事什么行业做什么工作&#xff0c;都一定会需要在电脑上打字、写文章文件&#xff0c;而大部分人都难免出现写错别字的情况。这时候就很需要自动检查错别字的软件&#xff0c;来帮助我们快速解决错别字的问题。 爱校对 错别字在线识别检测 错…

如何写好需求文档?

有一天&#xff0c;一位朋友打电话给我。 朋友&#xff1a;“听说你们公司是做产权的&#xff0c;我这有相关的项目&#xff0c;你们能做吗&#xff1f;” 老吴&#xff1a;“我们公司现在不打算接项目了&#xff0c;以做产品为主。” 朋友&#xff1a;“你在公司负责什么啊…

以梦为马,不负韶华|电巢科技延安大学飞鹰计划实习班精彩回顾

时光流淌无声&#xff0c;昨天仿佛还初次见面&#xff0c;今天却又是一年的尾声。你是否结交到亲密的小伙伴&#xff1f;你是否感受到团队合作的魅力&#xff1f;你是否在延大这片沃土得到成长&#xff1f;假如你还没答案&#xff0c;那么看看其他人的回答。 在延安大学&#x…

oracle _读取,oracle中如何读写bold类型的数据

Oracle的Blob字段比较特殊,他比long字段的性能要好很多,可以用来保存例如图片之类的二进制数据。 写入Blob字段和写入其它类型字段的方式非常不同,因为Blob自身有一个cursor,你必须使用cursor对 blob进行操作,因而你在写入Blob之前,必须获得cursor才能进行写入,那么如何…

linux下mysql 大小写敏感 设置

说明&#xff1a; MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的&#xff1a;    1、数据库名与表名是严格区分大小写的&#xff1b;    2、表的别名是严格区分大小写的&#xff1b;    3、列名与列的别名在所有的情况下均是忽略大小写的&#xff1b;…

如何用python读写excel文件_如何用Python读写Excel文件?最便捷的3种方式

python读写excel的方式有很多&#xff0c;这里我介绍3种方式&#xff0c;一种是利用xlrd和xlwt进行excel读写&#xff0c;一种是openpyxl读写&#xff0c;最后一种是利用pandas进行读写&#xff0c;下面我主要介绍一下3种方式读写的过程&#xff0c;实验环境win7python3.6pycha…

基于模型的软件开发方法综述

文章目录 前言1 基于模型的软件开发概述2模型驱动架构2.1 模型驱动的软件体系结构2.2 模型驱动的软件开发步骤 3 建模语言3.1UML3.2 SysML3.3 AADL 4 软件建模工具4.1 Rhapsody4.2 SCADE4.3 Matlab4.3.1 Matlab Coder4.3.2 Simulink Coder 4.4 其他工具4.4.1 Enterprise Archit…

(附源码)spring boot流浪动物救助系统 毕业设计180920

目 录 摘要 1 1 绪论 1 1.1 研究背景 1 1.2国内外研究现状 1 1.3论文结构与章节安排 1 2 流浪动物救助系统系统分析 3 2.1 可行性分析 3 2.2 系统流程分析 3 2.2.1 数据流程 3 3.3.2 业务流程 4 2.3 系统功能分析 4 2.3.1 功能性分析 4 2.3.2 非功能性分析 5 2.4 系统用例分析 …

大气污染扩散模型Calpuff教程

详情点击链接&#xff1a;大气污染扩散模型Calpuff教程一&#xff0c;Calpuff 1.Calpuff模型 2、Calpuff模型基础 3、Calpuff模型下载安装 1&#xff09;Calpro系统安装 2&#xff09;安装环境要求 3&#xff09;需安装的辅助软件二&#xff0c;数据预处理 1.网格设置 …

北大核心期刊2012《科技通报》杂志简介《科技通报》论文范文

北大核心期刊2012《科技通报》杂志简介《科技通报》论文范文 转载▼ 标签&#xff1a; 刘兴 柳林 科技通报 中文核心期刊 动态规划 文化 刊名&#xff1a; 科技通报 Bulletin of Science and Technology 主办&#xff1a; 浙江省科学技术协会 周期&#x…

【论文阅读】社交网络识别影响力最大节点方法综述-05

Vital nodes identification in complex networks 识别单个重要节点的方法基于结构信息一、结构中心性&#xff08;Structural centralities&#xff09;1.度中心性&#xff08;基于邻域的中心性&#xff09;2.四阶邻居信息&#xff08;基于邻域的中心性&#xff09;3.ClusterR…

【论文阅读】基于整合项目反应理论(IRT)的深度神经网络的解析自动作文评分

摘要 作文考试一直以来作为一种衡量应试者的更高等级的能力的方式吸引大家的注意&#xff0c;但是目前在对他们进行评分评定等级的时候有两个主要的缺陷&#xff0c;一是人力成本昂贵&#xff0c;二是存在公平性的问题。作为一种克服这些困难的方式&#xff0c;自动作文评分&a…