HDU1022--Train Problem I(栈的应用)
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.\\\\\\\".
Author
Ignatius.L
题意:
很有意思的一道题目
有一个站台C,只能FILO(先进后出),并且火车只能驶向B轨道,轨道A上的火车只能驶向C轨道
给出从A驶向C的顺序,以及从C驶向B的顺序,问这种顺序有可能吗?可能的话请输出方案
思路:
一开始想着在算法竞赛入门经典上看见过这道题目,只顾着回想思路了(尴尬的是忘记了。。。)
其实简单分析一下,题目其实就是问的在这种入栈顺序下,给出的出栈顺序有无可能,而每次出栈时,只能出栈顶元素。
设置标记f=0,出栈序列为O。模拟一下入栈顺序,当此时栈顶的元素等于等于O[f]时,出栈,f++,直至栈顶元素不等于O[f],停止出栈
最后,若栈中还有元素或者f!=n ,则此情况不成立
代码:
#include<bits/stdc++.h>
using namespace std;
const int MAXN=1000003;
int s[MAXN];
char a[MAXN],b[MAXN];
bool path[MAXN];
int main()
{
int n;
while(cin>>n){
memset(path,-1,sizeof(path));
scanf("%s",a);
getchar();
scanf("%s",b);
int cou=-1;
int coub=0;
int coup=0;
for(int i=0;i<n;i++){
s[++cou]=a[i]-'0';
path[coup++]=1;
while(s[cou]==(b[coub]-'0')&&cou!=-1&&coub<n){
//cout<<11111111<<endl;
cou--;
coub++;
path[coup++]=0;
}
}
if(cou!=-1)cout<<"NO."<<endl;
else{
cout<<"Yes."<<endl;
for(int i=0;i<2*n;i++){
if(path[i])cout<<"in"<<endl;
else cout<<"out"<<endl;
}
}
cout<<"FINISH"<<endl;
}
}
HDU1022--Train Problem I(栈的应用)的更多相关文章
- HDU1022 Train Problem I 栈的模拟
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1042 栈的模拟,题目大意是已知元素次序, 判断出栈次序是否合理. 需要考虑到各种情况, 分类处理. 常 ...
- Train Problem I(栈)
Train Problem I Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)T ...
- train problem I (栈水题)
杭电1002http://acm.hdu.edu.cn/showproblem.php?pid=1022 Train Problem I Time Limit: 2000/1000 MS (Java/ ...
- Hdu 1022 Train Problem I 栈
Train Problem I Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- hdu1022 Train Problem I---模拟栈
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1022 题目大意: 车的进出站问题,先给出N个火车,再按序列一的方式进站,判断能否以序列二的方式出站,若 ...
- hdu Train Problem I(栈的简单应用)
Problem Description As the new term comes, the Ignatius Train Station is very busy nowadays. A lot o ...
- Train Problem(栈的应用)
Description As the new term comes, the Ignatius Train Station is very busy nowadays. A lot of studen ...
- hdu1022 Train Problem I
http://acm.hdu.edu.cn/showproblem.php?pid=1022 #include<iostream> #include<stdio.h> #inc ...
- Train Problem I--hdu1022(栈)
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 ...
随机推荐
- 在线修改大表结构pt-online-schema-change
使用场景 在线数据库的维护中,总会涉及到研发修改表结构的情况,修改一些小表影响很小,而修改大表时,往往影响业务的正常运转,如表数据量超过500W,1000W,甚至过亿时 在线修改大表的可能影响 在线修 ...
- 微信小程序与内嵌webview之间来回跳转的几点总结,以及二维码的使用
截止到发稿小程序支持的功能,后续如果小程序更新在完善文稿. 1. 小程序可以内嵌组件跳转到h5页面,前提是在小程序后台配置相应的业务域名.新打开的h5页面会替代小程序组件内的其它组件,即为h5不能与小 ...
- 2.学习Application
2学习Application Application对象事件 名称 说明 Activated 当应用程序成为前台应用程序时触发 Deactivated 当应用程序不再是前台应用程序时触发 Dispat ...
- 11.jQuery之淡入淡出效果
知识点:fadeIn fadeOut fadeToggle fadeTo <style> div { width: 150px; height: 300px; background ...
- visual studio git 忽略文件配置模板
## Ignore Visual Studio temporary files, build results, and## files generated by popular Visual Stud ...
- CDH配置YARN动态资源分配
场景:根据不同项目或不同用户,对yarn资源队列进行划分,达到资源管控,任务管控的目的 yarn资源队列参数设置 当设置为 true 时,如果未指定池名称,Fair Scheduler 将会使用用户名 ...
- tp5+layui实现分页
layui和thinkphp5自己在百度上下载 html代码 <!DOCTYPE html> <html> <head> <meta charset=&quo ...
- python实现策略模式
python实现策略模式 原文地址 1.策略模式概述 策略模式:定义一系列算法,把它们一一封装起来,并且使它们之间可以相互替换.此模式让算法的变化不会影响到使用算法的客户. 电商领域有个使用“策略”模 ...
- java中too many characters in character literal
IDE里发现 too many characters in character literal 翻译过来就是 字符中的字符过多 , 一般情况是:把 多个文字 放在了 '' (单引号)里,应该放到 &q ...
- iptable防火墙原理
iptable防火墙原理 简介 Linux 2.0 ipfs/firewalld Linux 2.2 ipchain/firewall Linux 2.4 iptables/netfilter (ip ...