POJ 1036 Rails 模拟堆栈
水题,主要是思路清晰,判断明确。
记x为A站最前方的车,y表示下一列要进入B站的车厢,初识时,x=1;y=a1;C=[];
在调度过程中:
if(y==0)那么调度成功,退出模拟过程;否则
if(x==y)就是说接下来进站的正好是要出去的,那就直接让它A—>B 否则
if(C不空 && y=(最后进入C的火车)) 让车从C开出进入B 否则
if(x!=0)那么车 A—>C 否则 无解
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<stack>
using namespace std;
;
stack <int> C;
int n,a,b,x,y;
int A[maxn],B[maxn];
int main(){
    while(scanf("%d",&n)&& n){
        memset(B,,sizeof(B));
        memset(A,,sizeof(A));
        ])&&B[]){
            ;i<n;i++)scanf("%d",&B[i]);
            ;i<n;i++)A[i]=i+;
            a=;b=;y=B[b];x=A[a];
            while(!C.empty())C.pop();
            while(true){
                ){//over
                    printf("Yes\n");
                    break;
                }else{
                    if(x==y){//A-->B
                        x=A[++a];
                        y=B[++b];
                    }else{
                        if(!C.empty()&&y==C.top()){//C-->B
                            y=B[++b];
                            C.pop();
                        }else{
                            ){//A-->C
                                C.push(x);
                                x=A[++a];
                            }else{
                                printf("No\n");
                                break;
                            }
                        }
                    }
                }
            }
        }
    printf("\n");
    }
    ;
}
POJ 1036 Rails 模拟堆栈的更多相关文章
- 数据结构(3):java使用数组模拟堆栈
		堆栈原理: 数组模拟堆栈: //数组模拟栈 class ArrayStack{ //栈顶 private int top = -1; private int maxSize; private int[ ... 
- poj 1363 Rails in PopPush City &&【求堆栈中合法出栈顺序次数】
		问题如下: 问题 B: Rails 时间限制: Sec 内存限制: MB 提交: 解决: [提交][状态][讨论版] 题目描述 There is a famous railway station in ... 
- python列表模拟堆栈和队列
		对列特点:先进先出.后进后出 用列表insert.pop模拟进队出队: >>> l = [] >>> l.insert(0,'p1') >>> l ... 
- poj 1363 Rails 解题报告
		题目链接:http://poj.org/problem?id=1363 题意:有一列火车,车厢编号为1-n,从A方向进站,向B方向出站.现在进站顺序确定,给出一个出站的顺序,判断出站顺序是否合理. 实 ... 
- OpenJudg / Poj 1363 Rails
		1.链接: http://poj.org/problem?id=1363 http://bailian.openjudge.cn/practice/1363 2.题目: Rails Time Limi ... 
- poj 1036 Gangsters
		http://poj.org/problem?id=1036 题意:N个土匪,伸缩门的范围是K, 时间T, 伸缩门在[0, k]范围内变动,每个单位时间可以不变伸长或者缩短一个单位.给出每个最烦到达的 ... 
- POJ 1363 Rails(栈)
		题目代号:POJ 1363 题目链接:http://poj.org/problem?id=1363 题目原题: Rails Time Limit: 1000MS Memory Limit: 100 ... 
- poj 3077Rounders(模拟)
		转载请注明出处:viewmode=contents">http://blog.csdn.net/u012860063? viewmode=contents 题目链接:http://po ... 
- POJ 1363 Rails
		Rails Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 21728 Accepted: 8703 Descriptio ... 
随机推荐
- gdb/valgrind/coredump to debug c/cpp program
			gdb/valgrind/coredump 调试 1.gdb 调试 while/for 循环 ①如果在调试 while/for的时候,可以用until xxx(其中,xxx代表 行号)直接跳转到循环后 ... 
- javascript-对象的函数(一)
			Date.prototype.Format = function(fmt) { //author: meizz var o = { "M+" : this.getMonth()+1 ... 
- Windows Phone 8.1 列表控件(2):分组数据
			说到 List 控件,Windows Phone 8.1 上推荐使用的是 ListView 和 GridView. 而这两个控件实在太多东西可讲了,于是分成三篇来讲: (1)基本 (2)分组数据 (3 ... 
- 单引号,双引号 和 heredoc 初始化php字符串之间的区别
			php中的字符串指的是字符的序列,可以通过三种方式初始化:单引号.双引号和使用here document(heredoc) 形式. 一:单引号时 ①:需要转义的特殊字符:反斜杠和单引号. ②:因为ph ... 
- OpenCV3添加滑动条和鼠标事件到图形界面
			鼠标事件和滑动条控制在计算机视觉和OpenCV中非常有用,使用这些控件,用户可以直接与图形界面交互,改变输入图像或者变量的属性值. /* In this section, we are going t ... 
- php下删除一篇文章生成的多个静态页面
			php自定义函数之删除一篇文章生成的多个静态页面,可能有多页的文章,都是需要考虑到的. 复制代码代码如下: //– 删除一篇文章生成的多个静态页面 //– 生成的文章名为 5.html 5_2.ht ... 
- Think PHP 提示验证码输入错误
			最近遇到一个项目中用的是Thinkphp这个框架开发的,其中在登录这块有验证码这个功能,其实这个功能是TP自带的,其中主要方法是buildImageVerify,位于ThinkPHP\Extend\L ... 
- linux  crontab 命令
			Linux 系统提供了使用者控制计划任务的命令 :crontab 命令. 一.crond简介 crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划 ... 
- 第1章 Git的版本控制之道
			版本控制系统(Version Control System,VCS)可以帮助我们记录和跟踪项目中各文件内容的修改变化. 1.1 版本库 版本库(Repository)是版本控制系统用来存储所有历史数据 ... 
- 【BZOJ 2730】 [HNOI2012]矿场搭建
			Description 煤矿工地可以看成是由隧道连接挖煤点组成的无向图.为安全起见,希望在工地发生事故时所有挖煤点的工人都能有一条出路逃到救援出口处.于是矿主决定在某些挖煤点设立救援出口,使得无论哪一 ... 
