hdu 1022 Train Problem I(栈的应用+STL)
Train Problem I
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 20521 Accepted Submission(s): 7712
railway where all the trains stop. So all the trains come in from one side and get out from the other side. For this problem, if train A gets into the railway first, and then train B gets into the railway before train A leaves, train A can't leave until train
B leaves. The pictures below figure out the problem. Now the problem for you is, there are at most 9 trains in the station, all the trains has an ID(numbered from 1 to n), the trains get into the railway in an order O1, your task is to determine whether the
trains can get out in an order O2.



Input.
the railway). Print a line contains "FINISH" after each test case. More details in the Sample Output.
3 123 321
3 123 312
Yes.
in
in
in
out
out
out
FINISH
No.
FINISHFor the first Sample Input, we let train 1 get in, then train 2 and train 3.HintHint
So now train 3 is at the top of the railway, so train 3 can leave first, then train 2 and train 1.
In the second Sample input, we should let train 3 leave first, so we have to let train 1 get in, then train 2 and train 3.
Now we can let train 3 leave.
But after that we can't let train 1 leave before train 2, because train 2 is at the top of the railway at the moment.
So we output "No.".
栈的水题一道。就直接对进出栈进行模拟。和之前做的那道题类似,用来练练STL还是不错的,直接用STL水过。
http://blog.csdn.net/whjkm/article/details/38455291 能够看看之前的那道题。
用来vector 和 stack容器。用vector来存储字符串;
#include <cstdio>
#include <cstring>
#include <string>
#include <iostream>
#include <stack>
#include <vector>
using namespace std;
int main()
{
int n,i,j;
string str1,str2;
while(cin>>n>>str1>>str2)
{
stack<int>s;
vector<string>v;
for(i=0,j=0;i<n&&j<n;i++)
{
s.push(str1[i]);//把元素进栈
v.push_back("in");//压进vector容器
while(s.top()==str2[j])//进行匹配
{
if(!s.empty())
{
s.pop();
v.push_back("out");
}
j++;
if(s.empty()) break;
}
}
if(j==n)
{
printf("Yes.\n");
for(i=0; i< v.size();i++)
cout<< v[i] <<endl;
printf("FINISH\n");
}
else
printf("No.\nFINISH\n");
}
return 0;
}
hdu 1022 Train Problem I(栈的应用+STL)的更多相关文章
- Hdu 1022 Train Problem I 栈
Train Problem I Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- HDU 1022 Train Problem I(栈的操作规则)
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1022 Train Problem I Time Limit: 2000/1000 MS (Java/Ot ...
- hdu 1022 Train Problem I【模拟出入栈】
Train Problem I Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)T ...
- HDU 1022.Train Problem I【栈的应用】【8月19】
Train Problem I Problem Description As the new term comes, the Ignatius Train Station is very busy n ...
- HDU - 1022 Train Problem I STL 压栈
Train Problem I Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- hdu 1022:Train Problem I(数据结构,栈,递归,dfs)
Train Problem I Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)T ...
- HDU 1022 Train Problem I[给出两个长n的串,入栈和出栈顺序,判断入栈顺序是否可以匹配出栈顺序]
Train Problem I 时间限制:3000 ms | 内存限制:65535 KB 难度:2 描述 As the new term comes, the Ignatius Train Sta ...
- HDU 1022 Train Problem I
A - Train Problem I Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u ...
- hdu 1022 Train Problem
Train Problem I Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)T ...
随机推荐
- uva 1203 - Argus(优先队列)
option=com_onlinejudge&Itemid=8&page=show_problem&problem=3644" target="_blank ...
- infor系统日常问题解决笔记
1.问题:结算单核准时候显示订单XXX的状态为已修改. 解决方法:在采购订单状态栏重新核准订单,采购订单状态不影响发票核准,结算后不允许再新增采购订单行,否则仍然会提示采购订单状态为已修改,且无法进行 ...
- 发布一个C++版本的ORM库SmartDB
先简单说说ORM的优点: 提高开发效率,减少重复劳动,只和业务实体打交道,由业务实体自动生成sql语句,不用手写sql语句. 简单易用, 可维护性好. 隔离数据源,使得我们更换数据源时不用修改代码. ...
- sweet home 3d 免费的家居设计软件
Sweet home 3d是一个室内设计软件,可以帮助你快速的画出你家的平面图,家具的摆放位置,并且支持3D方式查看. 下载地址: http://sourceforge.net/projects/sw ...
- 使用 Kafka 和 Spark Streaming 构建实时数据处理系统(转)
原文链接:http://www.ibm.com/developerworks/cn/opensource/os-cn-spark-practice2/index.html?ca=drs-&ut ...
- asp中将系统货币符号¥改为美国货币符号$的做法
我们一般用FormatCurrency()函数得到字符串前面都会加上人民币符号¥.但在做一些网站时想把他们变成$. 可以在网面的前面加上一名话就OK了 SetLocale("en-us&qu ...
- iTextSharp 合并PDF后,无法删除已经合并的单个文件
private void MergePDFFiles(string[] fileList, string outMergeFile) { List<PdfReader> readerLis ...
- Windows之权限讲解
windows中,权限指的是不同账户对文件,文件夹,注册表等的访问能力.在windows中,为不同的账户设置权限很重要,可以防止重要文件被其他人所修改,使系统崩溃. 1权限概念 我们可以在控制面板中设 ...
- go语言基础之range的用法
一.range的用法 示例1: 传统用法 package main //必须有一个main包 import "fmt" func main() { str := "abc ...
- kubernetes基础概念
kubernetes是基于容器技术的分布式架构领先方案.具有完备的集群管理能力,包括多层次的安全防护和准入机制.多租户应用支撑能力.透明的服务注册和服务发现机制.内建智能负载均衡器.强大的故障发现和自 ...