铁轨(Rails, UVA514)
程序员文章站
2024-03-17 23:18:52
...
题目链接:https://vjudge.net/problem/UVA-514
读过题目之后,很明显可以知道这是一道用栈来解决问题的题,关键在于栈的使用方法上。问题求解的是将1...N的数,进栈或出栈,能否得到给定的1至N的一个排列。
很明显,题目只要求能否得到这样一个序列,所以没有必要把所有的进栈出栈的可能都列出来一一比较。分析题目可以发现一个规律:按顺序扫描给定的排列,如果当前数字和栈顶数字相同,则出栈,扫描下一个,并比较,如果不相同,就进栈下一个数,这样扫描完成之后,如果栈里还有数据,那么就不能够得到这个序列,如果栈里没有数据了,那么就可以得到这个序列。
代码如下:
#include<iostream>
#include<cstdio>
#include<stack>
using namespace std;
const int maxn = 1000 + 10;
int permu[maxn];
int main() {
//freopen("input.txt","r",stdin);
//freopen("output.txt", "w", stdout);
int N;
while (cin >> N && N != 0)
{
while ((cin >> permu[0]) && permu[0] != 0) {
for (int i = 1; i < N; i++)
{
cin >> permu[i];
}
int index = 0;
stack<int> rails;
for (int i = 1; i <= N; i++)
{
rails.push(i);
while (rails.size()>0 && rails.top() == permu[index]) {
index++;
rails.pop();
}
}
if (rails.size() > 0) {
cout << "No" << endl;
}
else {
cout << "Yes" << endl;
}
}
cout << endl;
}
return 0;
}
上一篇: *用递归写个二分查找;*
推荐阅读
-
铁轨(Rails, UVA514)
-
Rails2.1中的新东西之一: has-one-through
-
Rails 的发现/收藏 博客分类: Web RailsRedisSVNMySQL设计模式
-
Rails 3.2.7 发布,修复重要的DoS安全漏洞
-
Rails 2.3.4 发布!
-
ruby on rails rails版本require请求换了台电脑
-
Rails--fckeditor的bug解决方案 fckeditorRails
-
Rails--解决theme_support问题 Rails工作
-
Rails--解决theme_support问题 Rails工作
-
Rails--解决active_scaffold和jrails冲突 RailsjQueryprototype项目管理Ajax