refresh的停车场

Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%lld
& %llu

Description

 refresh近期发了一笔横財,开了一家停车场。因为土地有限。停车场内停车数量有限,可是要求进停车场的车辆过多。当停车场满时,要进入的车辆会进入便道等待,最先进入便道的车辆会优先

进入停车场,并且停车场的结构要求仅仅出去的车辆必须是停车场中最后进去的车辆。

现告诉你停车场容量N以及命令数M,以及一些命令(Add num 表示车牌号为num的车辆要进入停车场或便道。

Del 表示停车场中出去了一辆车。Out 表示便道最前面的车辆不再等待。放弃进入停车场)。

如果便道内的车辆不超过1000000.

Input

 首先输入N和M(0< n。m <200000),接下来输入M条命令。

Output

 输入结束后,假设出现停车场内无车辆而出现Del或者便道内无车辆而出现Out,则输出Error,否则输出停车场内的车辆,最后进入的最先输出,无车辆不输出。

Sample Input

2 6
Add 18353364208
Add 18353365550
Add 18353365558
Add 18353365559
Del
Out

Sample Output

18353365558
18353364208

Hint

 


      非常easy的一道题。可是手残错了好几遍,实在不应该,故留下做个纪念,愿此错不再犯。。。



模拟栈和队列做法:
#include<iostream>
#include<algorithm>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<string>
#include<stack>
#include<queue> using namespace std; string a[2000021],b[2000021];
int n,m; int main()
{
while(cin >> n >> m)
{
int flag = 0;
string str,num;
int h = 0,k1 = 0,k2 = 0;
for(int i=0; i<m; i++)
{
cin >> str;
if(str == "Add")
{
cin >> num;
if(h<n)
{
a[++h] = num;
}
else
{
b[++k2] = num;
} }
else if(str == "Del")
{
if(h<=0)
{
flag = 1;
}
else if(k2 > k1)
{ a[h] = b[++k1];
}
else if(k2<=k1)
{
h--;
} }
else if(str == "Out")
{
if(k2 <= k1)
{
flag = 1;
}
else
{
k1++;
} } }
if(h>0 && flag == 0)
{
while(h>0)
{
cout << a[h] << endl;
h--;
}
}
else if(flag == 1)
{
cout << "Error" << endl;
} }
return 0;
}




STL做法:
#include<iostream>
#include<algorithm>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<string>
#include<stack>
#include<queue> using namespace std; int n,m; int main()
{
while(cin >> n >> m)
{
stack<string>a;
queue<string>b;
int flag = 0;
string str,num;
for(int i=0; i<m; i++)
{
cin >> str;
if(str == "Add")
{
cin >> num;
if(a.size() == n)
{
b.push(num);
}
else
{
a.push(num);
}
}
else if(str == "Del")
{ if(a.empty())
{
flag = 1;
}
else
{
a.pop();
if(!b.empty())
{
a.push(b.front());
b.pop();
}
}
}
else if(str == "Out")
{ if(b.empty())
{
flag = 1;
}
else
{
b.pop();
}
}
// printf("h = %d k1 = %d k2 = %d\n",h,k1,k2);
} if(flag == 1)
{
cout << "Error" << endl;
}
else
{
while(!a.empty())
{
cout << a.top() << endl;
a.pop();
} }
}
return 0;
}

SDOTOJ2088 refresh的停车场(栈和队列)的更多相关文章

  1. refresh的停车场(栈和队列的STL)

    refresh的停车场 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描写叙述  refresh近期发了一笔横財,开了一家停车场. 因 ...

  2. SDUT-2088_数据结构实验之栈与队列十一:refresh的停车场

    数据结构实验之栈与队列十一:refresh的停车场 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description refresh最近发 ...

  3. 数据结构实验之栈与队列十一:refresh的停车场

    数据结构实验之栈与队列十一:refresh的停车场 Description refresh最近发了一笔横财,开了一家停车场.由于土地有限,停车场内停车数量有限,但是要求进停车场的车辆过多.当停车场满时 ...

  4. refresh的停车场 分类: 栈和队列 2015-06-18 17:13 26人阅读 评论(0) 收藏

    refresh的停车场 TimeLimit: 1000ms Memory limit: 65536K 题目描述 refresh最近发了一笔横财,开了一家停车场.由于土地有限,停车场内停车数量有限,但是 ...

  5. SDUT OJ 2088 refresh的停车场

    refresh的停车场 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述  refresh最近发了一笔横财,开了一家停车场.由于土地 ...

  6. c/c++ 栈与队列实现车库的出入与收费

      /* 设停车场是一个可停放n辆车的狭长通道,且只有一个大门可供汽车进出.汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列 (大门在最南端,最先到达的第一辆车停放在车场的最北段),若停车厂内 ...

  7. 学习javascript数据结构(一)——栈和队列

    前言 只要你不计较得失,人生还有什么不能想法子克服的. 原文地址:学习javascript数据结构(一)--栈和队列 博主博客地址:Damonare的个人博客 几乎所有的编程语言都原生支持数组类型,因 ...

  8. [ACM训练] 算法初级 之 数据结构 之 栈stack+队列queue (基础+进阶+POJ 1338+2442+1442)

    再次面对像栈和队列这样的相当基础的数据结构的学习,应该从多个方面,多维度去学习. 首先,这两个数据结构都是比较常用的,在标准库中都有对应的结构能够直接使用,所以第一个阶段应该是先学习直接来使用,下一个 ...

  9. 剑指Offer面试题:6.用两个栈实现队列

    一.题目:用两个栈实现队列 题目:用两个栈实现一个队列.队列的声明如下,请实现它的两个函数appendTail和deleteHead,分别完成在队列尾部插入结点和在队列头部删除结点的功能. 原文是使用 ...

随机推荐

  1. MYSQL 查看表上索引的 1 方法

    前期准备: create table T9(A int ,B text,C text,fulltext index fix_test_for_T8_B(B));#在定义表的时候加索引 create u ...

  2. Oracle EBS-SQL (INV-2):检查帐户别名发放记录.sql

    SELECT FU.description                 操作者,         ITM.SEGMENT1               物料编码,         ITM.DESC ...

  3. NOR和NAND flash区别,RAM 和ROM区别

    ROM是Read Only Memory的缩写.RAM是Random Access Memory的缩写.典型的RAM就是计算机的内存. RAM有两大类,一种称为静态RAM(Static RAM/SRA ...

  4. 如何在同一系统里同时启动多个Tomcat

    需要在同一系统里启动多个tomcat,应该怎么处理? tomcat是个服务程序,需要占用几个通讯端口,所以默认情况是不能启动多个tomcat,如果要启动多个tomcat,需要修改配置文件,通过在配置文 ...

  5. xxx.java: Recompile with -Xlint:deprecation for details

    警告而已.有些方法1 已经过时,有更好的方法可以代替,比如 new java.util.Date().getYear(); => cal.get(Calendar.YEAR);2 发现过问题,且 ...

  6. 如何在Root的手机上开启ViewServer,使得HierachyViewer能够连接

    前期准备: 关于什么是Hierarchy Viewer,请查看官方文档:http://developer.android.com/tools/debugging/debugging-ui.html.个 ...

  7. 拓扑图弹力布局呈现Flickr图片搜索结果:智能创新

    十年前有值得分享的图片我都存在Flickr上,可惜yahoo收购了Flickr之后堕落​好多年,最近yahoo在梅姐带领下Flickr团队终于恢复了生机,个人免费存储空间扩充到了1T,界面用户体验也有 ...

  8. Linux下装Eclipse C/C++,以及环境配置

    由于前些日子朋友搞个智能家居开发,用C语言写的.叫我装个CentOS(Linux中的一种)来进行开发,所以这几天都在摸索怎么装,当然,朋友也有给予一丁点帮助(可恶的色长.你叫我装东西,也不帮帮我),由 ...

  9. Angular-UI-Router 学习笔记

    路由 Route 我在 慕课网 学习 AngularJS 为什么用 Route AJAX 请求不会留下 History 记录 用户无法直接通过 URL 进入应用中的指定页面(保存书签.链接分享给朋友) ...

  10. D3学习教程

    [ D3.js 入门系列 ] 入门总结 | OUR D3.JS http://www.ourd3js.com/wordpress/?p=396