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 ...
随机推荐
- ftp上传java代码
<欢迎转载http://www.cnblogs.com/shizhongtao/p/3345826.html> 上传代码就写个简单的小例子.首先要加入jar包.commons-net-1. ...
- linux命令之vim使用-(转)vim的保存文件和退出命令
博客地址: http://blog.sina.com.cn/s/blog_5e357d2d0100zmth.html
- NOSQL之【redis的主从复制】
一.Redis的Replication: 下面的列表清楚的解释了Redis Replication的特点和优势. 1). 同一个Master可以同步多个Slaves. 2). Slave同 ...
- JavaScript 高级程序设计 01-基本概念
一.JavaScript组成 1.一个完成JavaScript是由ECMAScript.DOM.BOM三部分组成的. ECMAScript:提供核心语言功能--语法.类型.语句.关键字.保留字.操作符 ...
- php异步加载、多线程fsockopen()、fputs()
index.php <?php function test() { $fp=fsockopen("localhost", 80, $errno, $errstr, 30); ...
- Canvas开发笔记(不断更新)
1.可以使用requestAnimationFrame函数代替setInterval.需要处理浏览器兼容问题: var w = window; requestAnimationFrame = w.re ...
- python--gevent协程及协程概念
何为协程 协程,又称微线程.英文名Coroutine. 协程最大的优势就是协程极高的执行效率.因为子程序切换不是线程切换,而是由程序自身控制,因此,没有线程切换的开销,和多线程比,线程数量越多,协程的 ...
- WPF中利用后台代码实现窗口分栏动态改变
在WPF中实现窗口分栏并能够通过鼠标改变大小已经非常容易,例如将一个GRID分成竖排三栏显示,就可以将GRID先分成5列,其中两个固定列放GridSplitter. <Grid Backgrou ...
- 3、WPF学习之-布局
一.基础知识 1.所有WPF布局容器都派生自System.Windows.Controls.Panel抽象类的面板: 2.WPF种核心布局面板有StackPanel(栈面板).WrapPanel(环绕 ...
- CodeForces 492B
Description Vanya walks late at night along a straight street of length l, lit by n lanterns. Consid ...