例6-2 uva 514

UVa514 解析:火车车厢重排序问题的模拟栈实现 题目来源:UVa514 铁轨 Rails。这是一个火车车厢重排序的问题,通过模拟栈操作的算法实现。这种算法非常适用于具有栈结构特性的问题,比如括号匹配、货物堆放、编译器中语法检查。本文给出了C++的两种代码实现和Python的一种实现。 阅读详情
题目链接

https://vjudge.net/problem/UVA-514

题意:

有1~n​共 n n n节车厢从A驶来,问能否按照特定顺序进入B,AB中间有一个先进后出的车站,车厢只能前进不能后退。

思路

用栈模拟一下就行了。

如果A车厢是B要求的,直接进入B,否则进入车站。

如果A没有车厢了,车站顶的车厢不满足要求,就不行。

AC代码
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cmath>
#include <cstring>
#include <set>
#include <vector>
#include <queue>
#include <stack>
#include <map>
using namespace std;
#define ll long long 
const int maxn = 1010;
int a[maxn];

int main() {
    // freopen("in.txt", "r", stdin);
    // freopen("out.txt", "w", stdout);
    int n;
    while(~scanf("%d", &n) && n) {
        while(1) {
            scanf("%d", &a[0]);
            if(a[0] == 0) {
                printf("\n");
                break;
            }
            for(int i = 1; i < n; i++)
                scanf("%d", &a[i]);
            stack<int> s;
            int cnt = 1, i = 0;
            while(i < n) {
                if(a[i] == cnt) {
                    i++;
                    cnt++;
                }
                else if(!s.empty() && a[i] == s.top()) {
                    i++;
                    s.pop();
                }
                else {
                    if(cnt <= n) {
                        s.push(cnt);
                        cnt++;
                    }
                    else
                        break;
                }
            }
            if(i == n)
                printf("Yes\n");
            else 
                printf("No\n");
        }
    }
    return 0;
}
UVa514 Rails(铁轨) UVa514 Rails(铁轨) 题目:铁轨 题目链接:UVa514链接 题目描述: 某城市有一个火车站,有n节车厢从A方向驶入车站,按进站的顺序编号为1-n.你的任务是判断是否能让它们按照某种特定的顺序进入B方向的铁轨并驶入车站。例如,出栈顺序(5 4 1 2 3)是不可能的,但是(5 4 3 2 1)是可能的。 题目分析: 为了重组车厢,借助中转站,对于每个车厢,一旦从A移入C 阅读详情

相关推荐

细聊Oracle通过ODBC数据源连接SQL Server数据库

    类似文章搜索引擎上有很多,内容大致相同,今天所谓细聊是因为我在借鉴这些文章时候走了些弯路,所以写此文,为自己备忘,同时如果能为初涉此处知识点的小伙伴提供些帮助就更好了,废话不多说。    我的应用场景:    项目系统使用oracle数据库,与客户的第三方系统供应商实现资源共享,对方为sql server数据库;    我的测试开发环境为64bitwin7PC机,本机上装有64位Oracl...

xueren_83的博客 1万+

算法竞赛 例6-2铁轨(UVa 514)

Sample Input 5 12345 54123 0 6 654321 0 0 Sample Output Yes No Yes 下面代码并不能按照题述输入输出格式输出。问题在于不知道如何处理这个0 #include #include #include using namespace std; const

zhaohaibo的博客 460

在MacBook M1/M2上,手把手教你打包包含嵌入模型的RagFlow Docker镜像(避坑指南)

本文详细指导如何在MacBook M1/M2上构建ARM64架构的RagFlow Docker镜像,涵盖环境准备、依赖处理、镜像构建及性能优化全流程。特别针对Apple Silicon芯片的兼容性问题提供解决方案,帮助开发者高效完成本地开发环境搭建。

weixin_26908317的博客 240

紫书 例6-2 铁轨(Rails,ACM/ICPC CERC 1997,UVa 514)

大家好,我是小黄呀。 VJ题目传送门 题目大意 有n节车厢从A方向驶入车站,按照1~n的顺序编号,判断能否按照特定的顺序从B方向驶出。 即从A方向按序入栈,从B出栈,运用逆向思维判断是否符合栈的后进先出原则。 具体代码 #include<cstdio> #include<stack> using namespace std; const int MAXN = 1000 + 10; int n,target[MAXN]; int main() { while(scanf("%d

JamesHuang的博客 306

麒麟操作系统Kylin如何从 2203 升级到 2403

fill:#333;important;important;fill:none;color:#333;color:#333;important;fill:none;fill:#333;height:1em;开始升级流程第一步:升级前准备1. 确认版本为 V10 SP1 22032. 备份全部重要数据3. 确保网络稳定4. 关闭应用第二步:选择升级方式方法一:图形界面升级方法二:命令行升级1. 更新现有系统至最新2. 启动“系统升级”工具3. 检测并开始下载2403。

让编程变的很简单!! 2652

CST-Python(Pycharm如何与CST联合仿真,获取S参数)

我们想使用Python与CST联合仿真,其实是不需要自己下载Python的,因为CST在下载的时候就自带了Python3.6,我们只需要找到并将软件的环境设置到相应位置,即可联合仿真。(我的保存路径为D:\Program Files (x86)\CST Studio Suite 2020,在寻找时可以将前面切换成自己的保存路径,后面不需要修改)在CST帮助文档(打开CST软件,按F11即可直接访问帮助文档)里面,进行如下操作,便可以看到CST适配的Python版本为Python3.6!

weixin_52696285的博客 5648

例题6-2 UVA 514 - Rails (铁轨)

挺好的一道题目,想样例代码也想了很久。 大体思路: 整体分为两个过程,从A到C,从C到B, 用A代表要从A到C的编号序列,肯定是1到n了, 用B代表最终在B的车的编号。 让A = 1,B = 1,B是最终车辆的数组索引。 开始循环,发现A中的车等于B中的车,则说明了,这辆车要立即进站并且立即出站。 else  发现 B中的车等于栈C中的第一个,那么说明此时,栈C的中的车要出站。 e

aozil_yang的博客 639

【WLAN】【基础知识】WIFI那些事儿之信道和频谱(涵盖2.4G、5G、6G,全网最全)

- 从事WIFI相关开发或测试工作,经常要和信道、频宽、频率等打交道,本文仅将平时涉及的2.4G、5G、6G的信道、频宽、频率等做一总结。 - 一图胜万言,本文汇总了工作中经常用到的频谱图,保证全网最全!!! - 本博客地址,https://blog.youkuaiyun.com/qxhgd,欢迎各位关注,转发请注明出处。

一介草民,只为生活。 1万+

例题6-2 UVa514-Rails

很简单的模拟题,也是学到栈时很经典的填空题。按照做题时的思路一步步写下来就好了。在uDebug时发现最后还要多输出一个空行,算是易错点吧。 题目链接:UVa 514 AC代码: #include <iostream> //#include <fstream> #include <stack> using namespace std; const int maxn = 2000; int main() { int T, N, count = 0; //ofstream

qq_21606413的博客 180

MCAL中Dsadc的配置

DSADC模块作为一个专用的模块,主要应用在编码器软解码,功能强大而复杂,这里介绍了Dsadc的mcal配置和详细描述,让你全面学习和理解这个模块功能和应用。

dhyw12399999的博客 786

V-Mamba:2D 选择性扫描状态空间模型图像分类

V-Mamba CIFAR-10 分类链路:32² RGB → Stem Conv (3→64ch, stride2→16²) → VMambaBlock ×4 (SS2D 四方向 → Mamba S6 扫描 → MLP) → GAP → Linear → 10 类。核心贡献:SS2D 四方向扫描将 2D 空间建模转为 4 个 1D 序列, 计算复杂度从 O(N²) 降至 O(N)。建议先从 CIFAR-10 dim=64 depth=4 验证 SSM 收敛性;

FJN110的博客 70

【UVA No. 514】铁轨 Rails

【UVA No. 514】铁轨 Rails

代码改变世界 588

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

19行代码AC——例题 6-2 铁轨(Rails, UVa 514)——解题报告

励志用尽量少的代码做高效的表达。 提交(题目)链接→UVa-514 此题的本质是:给出“入栈顺序”,判断给定序列是否可以出栈。 有点像这种题: 因此思路也类似: 思路: 数组存储列车调度顺序, 栈存储正常入栈顺序, 若数组头=栈顶,数组移到下一位,栈顶元素弹出 遍历完毕后, 若栈空,则说明全部调度完毕, 输出Yes 注意点: 1、输出的是Yes不是YES!(最开始看错,哭晕在厕所) 2、每...

weixin_43899069的博客 1177

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

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

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

【栈】例题6-2 UVa 514

/* 算法竞赛入门 LRJ 例题6-2(UVa 514)Rails */ #include #include #include #include #include #include #include #include #include typedef long long LL; using namespace std; #pragma comment(linker, "/STACK:1024000

学无纸巾 351

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

UVA514 铁轨 Rails:题解

题目链接:https://www.luogu.org/problemnew/show/UVA514 分析: 入站序列是1-n,入站后判断如果等于出站序列的当前值,则直接出站。否则就在栈里待着不动。模拟即可,可以选择使用STL栈或手写。 代码: #include<cstdio> #include <cstring> #...

ShineEternal的笔记小屋 325

UVA514 笔记

UVA514 原题就不贴了。听别人讲的时候一头雾水,这东西果然还得自己悟, 只贴思路和解法: 火车从A到C再到B,流程基本是火车一定是从A开始先进到C,再根据情况判断是否和输入的出站顺序吻合。先设存储输入序列的数组为a 这里直接用STL的栈(就不造轮子了)来模拟C,从A到C直接PUSH,而每次从A到C的时候需要循环(是循环!)判断:C的栈顶是否符合序列a当前的元素,若符合则出栈且序列前进到下一个。...

qq_26064655的博客 259

洛谷 UVA 514 铁轨 Rails

UVA514 铁轨 Rails Input The input file consists of blocks of lines. Each block except the last describes one train and possibly more requirements for its reorganization. In the first line of the block ...

忘梦心的博客 383

UVA 514 Rails

题目链接:https://vjudge.net/problem/UVA-514 题目大意   多组数据,每组数据以 0 结束,每组数据给定 n 个数(1~n,n <= 1000),顺序排列,再给定多组序列,如果一个序列是这 n 个数顺序进栈后合法的出栈序列,则输出“Yes”,否则输出“No”。 分析   正解应该是用栈模拟,但这题有邪道解法。   如果我们遍历到出现序列的...

weixin_30814223的博客 130

uva 514 Rails

大部分时间都拿去调输出格式了^^ #include<iostream> #include<algorithm> #include<queue> #include<cmath> #include<math.h> #include<string> #include<string.h> #include<ma...

qq_35752161的博客 154

UVa - 514 Rails ( 栈 )

UVa - 514 Rails ( 栈 ) 水题 数据结构 : 栈 题意 输入一个整数N表示火车的数量,且栈A内火车按顺序排列( A栈栈首是1,栈尾是N ) ; 接下来给出1 - N的排列表示希望达成的栈B内的火车顺序 , 火车只能由A → B 或者 A → C(暂存) → B . 问给出的栈B序列能否达成 [ ...

a7152326的博客 198

UVa514铁轨、火车进站问题

具体题目如下: 先列举我用c语言写的代码: #include &lt;stdio.h&gt; #define maxn 1000+10 int n,target[maxn];//n用来存储火车的数量,target用来存储火车出站顺序 typedef struct{//定义一个栈的数据类型 int top; int data[maxn]; }stack; int e...

探索家的博客 480

例题6-2 UVA514 Rails(19行AC代码)

紫书刷题进行中,题解系列【GitHub|优快云】 例题6-2 UVA514 Rails(19行AC代码) 题目大意 给定包含n个数字的序列A,问数字序列B(1~n顺序排列)能否通过一个栈改变顺序来得到A。通过栈改变顺序时不可出现穿越数字。 思路分析 很自然的用栈来模拟整个过程,用j记录目标序列a和模拟序列连续相同个数,枚举1-n,先压入栈中,若栈顶等于a[j],则退栈,并且j++,继续比较下一个...

努力做个书呆儿 282

【UVA514】+【HDOJ1022]:出栈序列的可能性问题

UVA514:https://vjudge.net/problem/UVA-514 HDOJ1022:http://acm.hdu.edu.cn/showproblem.php?pid=1022 思路: 两个题目都是一个思路,给出待进栈的序列和出栈序列,判断出栈序列是否有可能存在 UVA514是《算法竞赛入门经典》P140的例题,HDOJ1022和它是同样的思路 具体请参见代码,举个栗子...

Cassie_zkq的博客 316

例题6-2 铁轨(Rails,ACM/ICPC CERC,UVa 514)

原题链接:https://vjudge.net/problem/UVA-514 分类:栈 备注:水题 前言:回顾的时候以为很水,但没有想象的那么水,实现起来还是有点麻烦的,再多看看作者的代码,思考一下怎么写出优美的代码吧。 代码如下: #include<cstdio> #include<stack> using namespace std; const int maxn =...

TK_wang_的博客 445
上一篇: Codeforces 1144E
下一篇: 例6-3 uva 442
roMxx
博客等级 码龄12年 21粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值