在线编程在线课堂在线测评Anycodes在线编程

编程论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

How to use bs4??
本帖最后由 carry0987 于
Double Queue 问题描述 : The new founded Balkan Investment Group Bank (
John 问题描述 : Little John is playing very funny game
linux-command Linux命令大全搜索工具,内容包含Linux命令
Coati 是一款跨平台的代码查看工具,适用于 C/C++ 和 Java。商业软件。特性:1. 索引
系统可承载海量并发,消息收发确认机制 保障消息必达 系统采用动态智
全平台视频监控,支持安卓苹果以及pcweb,支持海康大华等主流dvr,全部源码以及文档 单聊、群聊、商
如何访问类的私有属性? 下面以 TPathData 为例,
问题:从 XE4 以来,Firemonkey 曲线绘图在移动平台不平滑的问题一直令人诟病,提交到官方的 QC 也是族繁不及备载,官方似乎有意的
操作数据库(RODBC)   odbcConnect(dsn, uid="", p
数据模式:mode函数显示任何对象的模式。常见的单个的
系统可承载海量并发,消息收发确认机制 保障消息必达 系统采用动态智
RabbitMQ与PHP(一) 项
Iease团队扩编预备中,盼望能有Ruby或者java工程师加盟。全职兼职都可以。有爱好的伴侣请与我接洽。 邮件:i
ruby 怎么设置装备摆设GTK2,求教指导下!
#include #include #include #include using namespace std; int main() {
标题如图所示: 有n盏灯,编号1~n。一开端灯都是关着的
成熟的消息收发确认机制,支持万人大群 支持开发自定义的消息sdk接口,扩展性超强 支持单/
成熟的消息收发确认机制,支持万人大群 支持开发自定义的消息sdk接口,扩展性超强 支持单/
1. 注意列表和集合的区别 set 列表表现形式: list_1
Ajax   Ajax即“Asynchronous Javascript And
大师好,我比来在做布谷鸟优
分辨提取A和B图像Harris角点,接下来须要对

[HDU杭电] HDU 1022 Train Problem I-线性结构-[解题报告] C++

[复制链接]
发表于 2016-3-26 22:17:52 | 显示全部楼层 |阅读模式
Train Problem I


问题描述 :
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.

HDU 1022 Train Problem I-线性结构-[解题报告] C++

HDU 1022 Train Problem I-线性结构-[解题报告] C++

HDU 1022 Train Problem I-线性结构-[解题报告] C++

HDU 1022 Train Problem I-线性结构-[解题报告] C++

HDU 1022 Train Problem I-线性结构-[解题报告] C++

HDU 1022 Train Problem I-线性结构-[解题报告] C++

输入:
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.
输出:
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.
样例输入:

  1. 3 123 321
  2. 3 123 312
复制代码
样例输出:

  1. Yes.
  2. in
  3. in
  4. in
  5. out
  6. out
  7. out
  8. FINISH
  9. No.
  10. FINISH

  11. HintHint
  12. For the first Sample Input, we let train 1 get in, then train 2 and train 3.
  13. So now train 3 is at the top of the railway, so train 3 can leave first, then train 2 and train 1.
  14. 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.
  15. Now we can let train 3 leave.
  16. 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.
  17. So we output "No.".
复制代码
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1022题目虽然是英文的,但很好理解,

大笑

大笑
。其实就是赤裸裸的栈的题。
代码:
  1. #include<iostream>
  2. #include<stdio.h>
  3. #include<stack>
  4. #include<algorithm>
  5. using namespace std;
  6. int main()
  7. {
  8.         stack<char>s;
  9.         char a[1001],b[1001];
  10.         int n,i,j,count,c[1001];
  11.         while(~scanf("%d",&n))
  12.         {
  13.                 count=0;
  14.                 j=0;
  15.                 getchar();
  16.                 while(!s.empty())//**清空栈**//
  17.                 {
  18.                         s.pop();
  19.                 }
  20.                 scanf("%s %s",a,b);
  21.                 for(i=0;i<n;i++)
  22.                 {
  23.                         s.push(a[i]);//**入栈**//
  24.                         c[count]=1;//**进行标记**//
  25.                         count++;
  26.                     while(j<n&&!s.empty())//**i进行移动而且栈为非空**//
  27.                         {
  28.                                 if(s.top()==b[j])//**栈首相同**//
  29.                                 {
  30.                                         s.pop();//**出栈**//
  31.                                     c[count]=0;//**标记出栈**//
  32.                                     count++;
  33.                                     j++;//**j往右移动**//
  34.                                 }
  35.                             else
  36.                                 {
  37.                                     break;
  38.                                 }
  39.                         }
  40.                 }
  41.                 if(s.empty())
  42.                 {
  43.                         printf("Yes.\n");
  44.                         for(i=0;i<count;i++)
  45.                         {
  46.                                 if(c[i]==1) printf("in\n");
  47.                                 else if(c[i]==0)
  48.                                         printf("out\n");
  49.                         }
  50.                 }
  51.                 else
  52.                 {
  53.                         printf("No.\n");
  54.                 }
  55.                 printf("FINISH\n");
  56.         }
  57.         return 0;
  58. }
复制代码
在线编程(http://www.anycodes.cn)&编程论坛(http://www.52exe.cn)感谢您的支持!
回复

使用道具 举报

发布主题 上个主题 下个主题 快速回复 返回列表 官方QQ群
在线客服
客 服 中 心
群 机 器 人
网站二维码
收 起 客 服

QQ|Archiver|手机版|小黑屋|Anycodes ( ICP14002806Anycodes在线编程

GMT+8, 2018-11-22 01:09 , Processed in 3.111505 second(s), 71 queries .

Powered by Anycodes

© 2001-2013 吉林市群龙科技有限公司 Inc.

快速回复 返回顶部 返回列表