UVA - 514 Rails 经典栈使用
2015-05-09 23:12
375 查看
题目大意:有一列n节车厢的火车要入栈,车厢从1到n,只能从小到大入栈。
现在给出一个出栈顺序,问能否实现
解题思路:如果栈顶元素大于要出栈的数,肯定就不能实现了。
如果栈顶元素小于要出栈的数,就继续入栈
如果栈定元素等于要出栈的数,就出栈
现在给出一个出栈顺序,问能否实现
解题思路:如果栈顶元素大于要出栈的数,肯定就不能实现了。
如果栈顶元素小于要出栈的数,就继续入栈
如果栈定元素等于要出栈的数,就出栈
[code]#include<cstdio> #include<algorithm> #include<stack> using namespace std; #define maxn 1010 int num[maxn], n; void solve() { bool flag = true; int cnt = 2; stack<int> S; S.push(1); for(int i = 0; i < n; i++) { if(S.empty()) { if(cnt == n + 1) { flag = false; break; } S.push(cnt); cnt++; } if(num[i] > S.top()) { S.push(cnt); cnt++; i--; } else if(num[i] == S.top()){ S.pop(); } else { flag = false; break; } } if(!flag) printf("No\n"); else printf("Yes\n"); } int main() { while(scanf("%d", &n) == 1 && n) { int t, x; while(1){ scanf("%d", &num[0]); if(!num[0]) break; for(int i = 1; i < n; i++) scanf("%d", &num[i]); solve(); } printf("\n"); } return 0; }
相关文章推荐
- UVa 514 Rails(经典栈)
- UVa 514 (stack的使用) Rails
- UVa 514 Rails(经典栈)
- UVa514-Rails-铁轨--栈的使用
- UVa 514 Rails(经典栈)
- UVA 514 Rails(模拟|栈)
- UVa 514 - Rails
- 【栈】UVA - 514 Rails
- Uva514 Rails
- UVa 514 Rails(栈)
- uva 514 Rails
- Uva 514 Rails(简单栈)
- UVA 514 Rails
- UVA514 - Rails(栈)
- Uva514——Rails
- stack&&UVa514 Rails (铁轨)的理解与解析
- UVA_514: Rails
- Rails UVA - 514
- uva 514 - Rails(栈)
- UVa 514 Rails(栈)