UVA514 铁轨 Rails:题解

mac2022-06-30  98

题目链接:https://www.luogu.org/problemnew/show/UVA514

分析:

入站序列是1-n,入站后判断如果等于出站序列的当前值,则直接出站。否则就在栈里待着不动。模拟即可,可以选择使用STL栈或手写。

代码:

#include<cstdio> #include <cstring> #include<stack> using namespace std; int a[1005],n,cnt,bh,pd; int main() { while(scanf("%d",&n)&&n!=0) { stack<int> s; while(1) { scanf("%d",&a[1]); if(a[1]==0) break; for(int i=2;i<=n;i++) { scanf("%d",&a[i]); } cnt=bh=pd=1; while(bh<=n) { if(cnt==a[bh]) { cnt++; bh++; } else if(!s.empty()&&s.top()==a[bh]) { s.pop(); bh++; } else if(cnt<=n) s.push(cnt++); else { pd=0; break; } } printf("%s\n",pd?"Yes":"No"); } printf("\n"); } return 0; } 撒花~

转载于:https://www.cnblogs.com/vercont/p/10210023.html

相关资源:JAVA上百实例源码以及开源项目
最新回复(0)