POJ_1363_Rails(栈模拟)
来源:互联网 发布:刘燕舞 知乎 编辑:程序博客网 时间:2024/06/01 10:24
题型:模拟
题意:火车车厢以1~n的顺序开进车站,有一个铁轨用于暂时停放车厢,问是否可以按输入的火车顺序开出。
分析:用栈模拟即可。
1、 先用循环将当前车厢编号放入栈中,若遇到符合驶出序号的则弹出top。
2、 然后再将stack再查一遍,有符合的就pop。
3、 最后剩在stack里的元素只能按部就班的乖乖进行比较了,有就pop,木有就break;
注意点:
1、 注意每次开始执行新的数据之前需注意将队列清空。
2、 若有符合的在pop完之后一定要将stack再查一遍。
代码:
#include<iostream>#include<cstdio>#include<cmath>#include<cstring>#include<stack>using namespace std;int a[123456],b[123456];int main(){ int n; stack<int> s; while(scanf("%d",&n)&&n) { while(scanf("%d",&a[0])) { if(!a[0]) { printf("\n"); break; } for(int i=1; i<n; i++) { scanf("%d",&a[i]); } while(!s.empty()) { s.pop(); } int j=0; for(int i=0; i<n; i++) { b[i]=i+1; s.push(b[i]); if(s.top()==a[j]) { s.pop(); j++; while(!s.empty()&&s.top()==a[j]) { s.pop(); j++; } } } while(!s.empty()) { if(s.top()==a[j]) { s.pop(); j++; } else break; } if(s.size()) { printf("No\n"); } else { printf("Yes\n"); } } } return 0;}
<pre>
- POJ_1363_Rails(栈模拟)
- BNUOJ44586(栈模拟)
- 栈(数组模拟)
- Flipper (栈模拟)
- UVA 101(栈模拟)
- So Easy!!! (栈模拟)
- 模拟栈问题(思路)
- 用链表模拟栈(100)
- 栈模拟
- 模拟栈
- 模拟栈
- 特长生模拟 BIOtech(模拟)
- JS模拟栈(面向对象)
- uva 127 ``Accordian'' Patience(栈+模拟)
- poj 1028 Web Navigation(栈模拟)
- hdu 3887 树状数组(模拟栈)
- 模拟栈操作--(姓名 年龄)
- HDU 1022(栈模拟;暴力搜索)
- 【Linux操作系统分析】进程的创建与可执行程序的加载
- 第十四周项目2:Shape类
- css样式高级选择器
- JAVA调用exe可执行文件
- 网络安全基础篇之<九>
- POJ_1363_Rails(栈模拟)
- JavaScript定义函数的方式
- 还在为asp.net中fckeditor报错从客户端(Content="<p>测试</p>")中检测到有潜在危险的 Request.Form 值吗
- hdu 1517
- java中的BitSet学习
- jQuery操作概览
- 使用Eclipse进行远程调试
- 黑马程序员——类加载器
- 记一次薪酬谈判的教训