题目:
Problem Description
As the new term comes, the Ignatius Train Station is very busy nowadays. A lot of student want to get back to school by train(because the trains in the Ignatius Train Station is the fastest all over the world ^v^). But here comes a problem, there is only one 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 input contains several test cases. Each test case consists of an integer, the number of trains, and two strings, the order of the trains come in:O1, and the order of the trains leave:O2. The input is terminated by the end of file. More details in the Sample Input.
 
Output
The output contains a string "No." if you can't exchange O2 to O1, or you should output a line contains "Yes.", and then output your way in exchanging the order(you should output "in" for a train getting into the railway, and "out" for a train getting out of the railway). Print a line contains "FINISH" after each test case. More details in the Sample Output.
 
Sample Input
3 123 321
3 123 312
 
Sample Output
Yes.
in
in
in
out
out
out
FINISH
No.
FINISH

Hint

Hint

For the first Sample Input, we let train 1 get in, then train 2 and train 3.
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.".

 

思路:紫书上原题,题意是给你一个进站前的数列,判断这几个数能否通过类似入栈出栈的操作后得到题目所给的数列;

  用栈来模拟就好。

  ps:一定要注意输出格式!!!写完代码之后,愣是一直wa,开始是因为栈没清空,后又发现是输出格式不对!!!

    血的教训,改了好半天!!!

 #include <iostream>
#include <algorithm>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <queue>
#include <stack>
#include <map>
#include <vector>
#include <string> #define PI acos((double)-1)
#define E exp(double(1))
#define N 1000000
using namespace std; int main (void)
{
int t,a,b,flag,c;
string s,e,code;
stack<int>sk;
while(scanf("%d",&t) == && t)
{
cin>>s>>e;
flag=;
a=b=c=;
while(b<t)
{
if(s[a] == e[b])
{
a++;b++;
code[c++]=;
code[c++]=;
}
else if(!sk.empty() && e[b] == sk.top())
{
sk.pop();b++;
code[c++]=;
}
else if(a < t)
{
sk.push(s[a++]);
code[c++]=;
}
else
{
flag = ;
break;
}
}
if(flag)
{
cout<<"Yes."<<endl;
for(int i = ;i< *t;i++)
if(code[i])
cout<<"in"<<endl;
else
cout<<"out"<<endl;
}
else
cout<<"No."<<endl;
cout<<"FINISH"<<endl;
while(!sk.empty())
sk.pop();
}
return ;
}

杭电1022Train Problem I的更多相关文章

  1. 杭电1023Train Problem II

    地址:http://acm.hdu.edu.cn/showproblem.php?pid=1023 题目: Train Problem II Time Limit: 2000/1000 MS (Jav ...

  2. 杭电ACM(1002) -- A + B Problem II 大数相加 -提交通过

    杭电ACM(1002)大数相加 A + B Problem II Problem DescriptionI have a very simple problem for you. Given two ...

  3. 杭电ACM刷题(1):1002,A + B Problem II 标签: acmc语言 2017-05-07 15:35 139人阅读 评

    最近忙于考试复习,没有多少可供自己安排的时间,所以我利用复习之余的空闲时间去刷刷杭电acm的题目,也当对自己编程能力的锻炼吧. Problem Description I have a very si ...

  4. acm入门 杭电1001题 有关溢出的考虑

    最近在尝试做acm试题,刚刚是1001题就把我困住了,这是题目: Problem Description In this problem, your task is to calculate SUM( ...

  5. 杭电OJ——1198 Farm Irrigation (并查集)

    畅通工程 Problem Description 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇.省政府"畅通工程"的目标是使全省任何两个城镇间都可 ...

  6. 杭电ACM分类

    杭电ACM分类: 1001 整数求和 水题1002 C语言实验题——两个数比较 水题1003 1.2.3.4.5... 简单题1004 渊子赛马 排序+贪心的方法归并1005 Hero In Maze ...

  7. HDU-2500 做一个正气的杭电人

    http://acm.hdu.edu.cn/showproblem.php?pid=2500 做一个正气的杭电人 Time Limit: 1000/1000 MS (Java/Others)    M ...

  8. 杭电 2047 阿牛的EOF牛肉串 (递推)

    阿牛的EOF牛肉串 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total ...

  9. 做一个正气的杭电人--hdu2500

    做一个正气的杭电人 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

随机推荐

  1. 对PHP输入输出流学习和认识

    PHP输入和输出流是通过php://来访问的,它允许访问 PHP 的输入输出流.标准输入输出和错误描述符, 内存中.磁盘备份的临时文件流以及可以操作其他读取写入文件资源的过滤器. php://stdi ...

  2. Visual Studio 2010自动添加头部注释信息

    在日常的开发中我们经常需要为我们的类库添加注释和版权等信息,这样我们就需要每次去拷贝粘贴同样的文字,为了减少这种重复性的工作,我们可以把这些信息保存在Visual Studio 2010类库模版文件里 ...

  3. VC++6.0 打开原来工程突然特别慢或者打不开?

    VC++6.0打开原来工程突然特别慢或者打不开?    近几日,对原来工程做了一些修改,感觉打开特别慢,甚至打不开,在Loading Workspace时就卡住了. 解决办法:删除工程文件中的三个文件 ...

  4. node.js中的事件循环机制

    http://www.cnblogs.com/dolphinX/p/3475090.html

  5. <input>type类型

    当Input框需要输入数字时,一般用到type='number' 但是在输入框有 上下小箭头 google后有解决CSS方案 在chrome下: input::-webkit-outer-spin-b ...

  6. awk向脚本传递參数(二)

    命令行參数的一个重要限制是它们在BEGIN过程中是不可用的. 也就是说,直到首行输入完毕以后它们才可用.为什么?这是一个easy混乱的部分.从命令行传递的參数就好像文件名称一样被处理.赋值操作知道这个 ...

  7. 73、ImageView 让图片填充满

    在xml里的ImageView中设置   android:scaleType="fitXY"属性,这个属性是让图片填充满, 当然你可以去查一下这个scaleType的其他属性,你要 ...

  8. c itoa和atoi

    #include <iostream> using namespace std; int main() { #if 1 ; ];//不要写成char*,因为没有分配空间 itoa(num, ...

  9. async 的三大返回类型

    序 博主简单数了下自己发布过的异步文章,已经断断续续 8 篇了,这次我想以 async 的返回类型为例,单独谈谈. 异步方法具有三个可让开发人员选择的返回类型:Task<TResult>. ...

  10. SpringMVC如何接收json数据

    请求头:Content-Type=application/json数据如: {"mobile":"12345678912","smsContent&q ...