UVA514:Rails(铁轨)
来源:互联网 发布:windows无法加载怎么办 编辑:程序博客网 时间:2024/03/29 14:56
作者:xq的acm之路
栈
题目链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=455
题目大意:某城市有一个火车站,有n节车厢从A方向驶入车站,按进站的顺序编号为1-n.你的任务是判断是否能让它们按照某种特定的顺序进入B方向的铁轨并驶入车站。例如,出栈顺序(5 4 1 2 3)是不可能的,但是(5 4 3 2 1)是可能的。
思路:为了重组车厢,借助中转站,对于每个车厢,一旦从A移入C就不能回到A了,一旦从C移入B,就不能回到C了,意思就是A->C和C->B。而且在中转站C中,车厢符合后进先出的原则。所以这里可以看做为一个栈。
书上例题,不多说了,,,
代码如下:
#include <iostream>#include <stack>using namespace std;int a[10050];int main(){ int n; while(cin>>n&&n) { stack<int>s; int ok,zuo,you; while(1) { cin>>a[1]; if(a[1]==0) break; for(int i=2;i<=n;i++) cin>>a[i]; zuo=1,you=1,ok=1; while(you<=n) { if(zuo==a[you]) zuo++,you++; else if(!s.empty()&&s.top()==a[you]) you++,s.pop(); else if(zuo<=n) s.push(zuo++); else {ok=0;break;} } if(ok==0) cout<<"No"<<endl; else cout<<"Yes"<<endl; } cout<<endl; } return 0;}
0 0
- UVa514 Rails(铁轨)
- 铁轨(Rails) UVa514
- UVA514 Rails(铁轨)
- UVA514:Rails(铁轨)
- Uva514 Rails(铁轨)
- 铁轨Rails UVA514(stack运用)
- UVa514-Rails-铁轨--栈的使用
- UVa514 铁轨
- stack&&UVa514 Rails (铁轨)的理解与解析
- UVA514 铁轨问题
- UVA514-Rails
- UVa514 Rails
- Rails uva514
- Uva514-Rails
- 铁轨(Rails)
- UVA514 - Rails(栈)
- Uva514——Rails
- UVA514 Rails(栈)
- 关于log4j
- centos本身的防火墙firewall小结
- Image-Loader简单使用
- 一般函数指针和类的成员函数指针
- 代理服务器 Squid
- UVA514:Rails(铁轨)
- 九度 oj 题目1090:路径打印
- LVS集群中的IP负载均衡技术
- poj1026
- Caliburn.Micro学习笔记(五)----协同IResult
- [转载]AlphaGo 的棋局,与人工智能有关,与人生无关
- 关键字const的使用总结
- Android系统模块编译
- spring profile的基本使用