ACboy was kidnapped!! 
he miss his mother very much and is very scare now.You can't image how dark the room he was put into is, so poor :(. 
As a smart ACMer, you want to get ACboy out of the monster's labyrinth.But when you arrive at the gate of the maze, the monste say :" I have heard that you are very clever, but if can't solve my problems, you will die with ACboy." 
The problems of the monster is shown on the wall: 
Each problem's first line is a integer N(the number of commands), and a word "FIFO" or "FILO".(you are very happy because you know "FIFO" stands for "First In First Out", and "FILO" means "First In Last Out"). 
and the following N lines, each line is "IN M" or "OUT", (M represent a integer). 
and the answer of a problem is a passowrd of a door, so if you want to rescue ACboy, answer the problem carefully!

InputThe input contains multiple test cases. 
The first line has one integer,represent the number oftest cases. 
And the input of each subproblem are described above.OutputFor each command "OUT", you should output a integer depend on the word is "FIFO" or "FILO", or a word "None" if you don't have any integer.Sample Input

4
4 FIFO
IN 1
IN 2
OUT
OUT
4 FILO
IN 1
IN 2
OUT
OUT
5 FIFO
IN 1
IN 2
OUT
OUT
OUT
5 FILO
IN 1
IN 2
OUT
IN 3
OUT

Sample Output

1
2
2
1
1
2
None
2
3

题意讲的很清楚,就是用栈和队列来模拟,但是提交的时候WA了两次,后来才发现当进入过一组数据后,要把栈和队列清空

AC代码

#include<iostream>
#include<cstdio>
#include<cstring>
#include<stack>
#include<queue>
const int maxn = ; using namespace std; int main()
{
stack<int> sT;
queue<int> que; int t, num;
char xx[];
char s1[] = "IN", s2[] = "OUT";
char s3[] = "FIFO", s4[] = "FILO"; scanf("%d", &t); while(t--)
{
int n;
char str[]; scanf("%d %s", &n, &str); if(strcmp(str, s3) == )
{
for(int i = ; i < n; i++)
{
scanf("%s", &xx); if(strcmp(xx, s1) == )
{
scanf("%d", &num);
que.push(num);
} if(strcmp(xx, s2) == )
{
if(que.empty())
{
printf("None\n");
} else
{
printf("%d\n", que.front());
que.pop();
}
}
} while(!que.empty())
que.pop();
} if(strcmp(str, s4) == )
{
for(int i = ; i < n; i++)
{
scanf("%s", &xx); if(strcmp(xx, s1) == )
{
scanf("%d", &num);
sT.push(num);
} if(strcmp(xx, s2) == )
{
if(sT.empty())
{
printf("None\n");
}
else
{
printf("%d\n", sT.top());
sT.pop();
}
}
} while(!sT.empty())
sT.pop();
}
}
return ;
}

在网上找了一些其他人的代码,发现也有人用vector来解题,也要学习一下

/*
题意:这个东西总共两种模式:栈和队列,然后模拟 解体思路:既然是模拟,就没什么搞得了。开搞 */
#include<bits/stdc++.h>
using namespace std;
int t,n;
int a;
string op,name;
vector<int>v;
void init(){
v.clear();
}
int main(){
//freopen("in.txt","r",stdin);
scanf("%d",&t);
while(t--){
scanf("%d",&n);
cin>>name;
init();
if(name=="FIFO"){//先进先出
for(int i=;i<n;i++){
cin>>op;
if(op=="IN"){//进入
scanf("%d",&a);
v.push_back(a);
}else{//出
if(v.size()==){
printf("None\n");
}else{
printf("%d\n",v[]);
v.erase(v.begin());
}
}
}
}else{//先进后出
for(int i=;i<n;i++){
cin>>op;
if(op=="IN"){//进入
scanf("%d",&a);
v.push_back(a);
}else{//出
if(v.size()==){
printf("None\n");
}else{
printf("%d\n",v[v.size()-]);
v.erase(v.end()-);
}
}
}
}
}
return ;
}

F - ACboy needs your help again! (模拟)的更多相关文章

  1. Codeforces 1131 F. Asya And Kittens-双向链表(模拟或者STL list)+并查集(或者STL list的splice()函数)-对不起,我太菜了。。。 (Codeforces Round #541 (Div. 2))

    F. Asya And Kittens time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  2. Vjudge - F - 比前面更简单的模拟

    2017-07-16 07:31:35 writer:pprp 题目介绍:很基础的string用法 题目如下: 读入一个字符串,字符串中包含ZOJ三个字符,个数不一定相等,按ZOJ的顺序输出,当某个字 ...

  3. 浅谈Javascript事件模拟

    事件是用来描述网页中某一特定有趣时刻的,众所周知事件通常是在由用户和浏览器进行交互时触发,其实不然,通过Javascript可以在任何时间触发特定的事件,并且这些事件与浏览器创建的事件是相同的.这就意 ...

  4. python 反人类函数式编程模拟while和if控制流

    比如下面这个简单明了的命令式程序,它不断捕捉用户输入的内容,然后对其求和.直到用户输入一个以'0'开头的字符串,停止捕捉. while 1: line = input() ': print(sum(m ...

  5. 模拟登陆,selenium,线程池

    一 . 模拟登陆案例(识别验证码)  1 . 打码平台 - 云打码 : www.yundama.com  使用步骤 : - 注册两个账户,普通用户和开发者用户 : - 登陆 普通用户查看余额 登陆开发 ...

  6. 湖南省第八届大学生计算机程序设计竞赛(A,B,C,E,F,I,J)

    A 三家人 Description 有三户人家共拥有一座花园,每户人家的太太均需帮忙整理花园.A 太太工作了5 天,B 太太则工作了4 天,才将花园整理完毕.C 太太因为正身怀六甲无法加入她们的行列, ...

  7. awk 常用选项及数组的用法和模拟生产环境数据统计

    awk 常用选项总结 在 awk 中使用外部的环境变量 (-v) awk -v num2="$num1" -v var1="$var" 'BEGIN{print ...

  8. H-Updating a Dictionary (模拟)

    In this problem, a dictionary is collection of key-value pairs, where keys are lower-case letters, a ...

  9. C#接口显示实现在实际开发中的作用

    摘要 任何一个C#入门的程序员都知道——当一个类型在实现接口的时候,有两种方法实现:显式实现.隐式实现.而且大家也都知道,当一个类型实现的两个接口存在相同成员定义时,显示实现可以解决这种情况. 但是, ...

随机推荐

  1. Javascript 推荐一个图形化展示库

    觉得这个库不错: http://almende.github.io/chap-links-library/index.html

  2. ARM-Linux移植之(四)——根文件系统构建

    相关工具版本: busybox-1.7.0 arm-linux-4.3.2 linux-2.6.22   1.配置busybox并安装. 在我们的根文件系统中的/bin和/sbin目录下有各种命令的应 ...

  3. Patator-一款很好用的爆破工具

    项目地址:https://github.com/lanjelot/patator 打开文件夹 运行一下文件查看帮助 python patator.py --help 这里有很多的爆破选项,就不一一截图 ...

  4. pcs与crmsh命令比较

    一.概念 1.crmsh This project is not part of the GNU Project. Pacemaker command line interface for manag ...

  5. wordpress get_query_var()函数

    get_query_var函数的最主要作用就是能够查询得到当前文章的分类及分页.定义在:wp-includes/query.php 定义: function get_query_var($var) { ...

  6. eclipse+minGW 调试ffmpeg错误:No symbol table is loaded. Use the "file" command.

    转载地址:http://www.blogjava.net/fancydeepin/archive/2012/11/19/391520.html 数据结构第二篇:  eclipse SDK 安装和配置 ...

  7. LED电视与液晶电视的区别

    [LED电视与液晶电视的区别] 目前LED电视全部是采用了LED背光的液晶电视,本质上而言,还是液晶电视.这与真正的LED电视是两个完全不同的概念.如今通常把LED背光电视称为LED电视,采用CCFL ...

  8. SQL2005 异常处理机制(Begin try Begin Catch)

    将可能会出错的sql 写在begin try...end try 之间,若出错,刚程序就跳到紧接着的begin try...end try 的beign catch...end catch中,执行be ...

  9. PHP Curl请求Https接口

    在请求http的时候只需要 file_get_contents("http://www.sojson.com/open/api/weather/json.shtml?city=$Positi ...

  10. Centos7.2 下搭建LNMP环境(终极版)Yum安装

    PHP7.1+Nginx+MySQL5.7 安装PHP //安装源只要遇到选择的全是Y rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-rele ...