codevs 3185-3187 队列练习x
给定一个队列(初始为空),只有两种操作入队和出队,现给出这些操作请输出最终的队头元素。 操作解释:1表示入队,2表示出队
N(操作个数)
N个操作(如果是入队则后面还会有一个入队元素)
具体见样例(输入保证队空时不会出队)
输出描述
Output Description
最终队头元素,若最终队空,输出”impossible!”(不含引号)
样例输入
Sample Input
3
1 2
1 9
2
样例输出
Sample Output
9
数据范围及提示
Data Size & Hint
对于100%的数据 N≤1000 元素均为正整数且小于等于100
分类标签 Tags 点此展开
#include<cstdio>
#include<iostream> using namespace std; int n,top=,s=,h=;
int a[]; void pop()
{
int v;
scanf("%d",&v);
a[h++]=v;
} void push()
{
top++;
} int main()
{
int p;
scanf("%d",&n);
for(int i=;i<=n;++i)
{
scanf("%d",&p);
if(p==)
{
s++;
pop();
}
if(p==)
{
s--;
push();
}
}
if(s<=)
{
printf("impossible!");
}
else printf("%d",a[top]);
return ;
}
(此题与队列练习1相比改了2处:1加强了数据 2不保证队空时不会出队)
给定一个队列(初始为空),只有两种操作入队和出队,现给出这些操作请
输出最终的队头元素。 操作解释:1表示入队,2表示出队
输入描述
Input Description
N(操作个数)
N个操作(如果是入队则后面还会有一个入队元素)
具体见样例(输入保证队空时不会出队)
输出描述
Output Description
最终队头元素,若最终队空,或队空时有出队操作,输出”impossible!”(不含引号)
样例输入
Sample Input
3
1 2
2
2
样例输出
Sample Output
impossible!
数据范围及提示
Data Size & Hint
对于100%的数据 N≤100000 元素均为正整数且小于等于10^8
分类标签
Tags
点此展开
#include<cstdio>
#include<iostream> using namespace std; int n,top=0,s=0,h=0;
int a[111111];
bool b=0; void pop()
{
int v;
scanf("%d",&v);
a[h++]=v;
} void push()
{
if(top<h)
top++;
else b=1;
} int main()
{
int p;
scanf("%d",&n);
for(int i=1;i<=n;++i)
{
scanf("%d",&p);
if(p==1)
{
s++;
pop();
}
if(p==2)
{
s--;
push();
if(b)
{
printf("impossible!");
return 0;
}
} }
if(s<=0)
{
printf("impossible!");
}
else printf("%d",a[top]);
return 0;
}
3187x
比起第一题,本题加了另外一个操作,访问队头元素(编号3,保证访问队头元素时或出队时队不为空),现在给出这N此操作,输出结果。
N
N次操作(1入队 2出队 3访问队头)
输出描述
Output Description
K行(K为输入中询问的个数)每次的结果
样例输入
Sample Input
6
1 7
3
2
1 9
1 7
3
样例输出
Sample Output
7
9
数据范围及提示
Data Size & Hint
对于50%的数据 N≤1000 入队元素≤200
对于100%的数据 N≤100000入队元素均为正整数且小于等于10^4
分类标签
Tags
点此展开
#include<cstdio>
#include<iostream> using namespace std; int n,top=,h=;
int a[]; void pop()
{
int v;
scanf("%d",&v);
a[h]=v;h++;
if(h==)
{
a[top]=v;
}
} void push()
{
top++;
} int main()
{
int p;
scanf("%d",&n);
for(int i=;i<=n;++i)
{
scanf("%d",&p);
if(p==)
{
pop();
}
if(p==)
{
push();
}
if(p==)
{
printf("%d\n",a[top]);
}
}
return ;
}
codevs 3185-3187 队列练习x的更多相关文章
- codevs 3185 队列练习1
题目描述 Description 给定一个队列(初始为空),只有两种操作入队和出队,现给出这些操作请输出最终的队头元素. 操作解释:1表示入队,2表示出队 输入描述 Input Description ...
- codevs 3185 队列练习 1
时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 给定一个队列(初始为空),只有两种操作入队和出队,现给出这些操作请输出最 ...
- Codevs 队列练习 合并版
3185 队列练习 1 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 给定一个队列(初始为空),只有两种操作入队和出队,现给出这 ...
- T3185 队列练习1 codevs
http://codevs.cn/problem/3185/ 题目描述 Description 给定一个队列(初始为空),只有两种操作入队和出队,现给出这些操作请输出最终的队头元素. 操作解释:1表示 ...
- DP+单调队列 codevs 1748 瑰丽华尔兹(还不是很懂具体的代码实现)
codevs 1748 瑰丽华尔兹 2005年NOI全国竞赛 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 大师 Master 题解 题目描述 Descripti ...
- T3187 队列练习3 codevs
http://codevs.cn/problem/3187/ 题目描述 Description 比起第一题,本题加了另外一个操作,访问队头元素(编号3,保证访问队头元素时或出队时队不为空),现在给出这 ...
- T3186 队列练习2 codevs
http://codevs.cn/problem/3186/ 题目描述 Description (此题与队列练习1相比改了2处:1加强了数据 2不保证队空时不会出队)给定一个队列(初始为空),只有两种 ...
- codevs 3186 队列练习2
3186 队列练习 2 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description (此题与队列练习1相比改了2处:1加 ...
- Codevs 4373 窗口(线段树 单调队列 st表)
4373 窗口 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 黄金 Gold 题目描述 Description 给你一个长度为N的数组,一个长为K的滑动的窗体从最左移至最右端,你只 ...
随机推荐
- package[golang]学习笔记之context
*关于context https://talks.golang.org/2014/gotham-context.slide#29
- Codeforces 1237E. Balanced Binary Search Trees
传送门 这一题是真的坑人,时间空间都在鼓励你用 $NTT$ 优化 $dp$...(但是我并不会 $NTT$) 看到题目然后考虑树形 $dp$ ,设 $f[i][0/1]$ 表示 $i$ 个节点的树,根 ...
- 《深入实践C++模板编程》之一——Hello模板
1.通过一个简单的例子来理解模板的用途: 模板为不同类型的数据生成操作相同或相似的函数. 弱语言如Python,可以使用一种函数来应对各种类型,但是C++就不得不为不同的类型编写相似的函数.模板的作用 ...
- git 查看当前仓库地址以及设置新的仓库地址
1.查看当前仓库地址 git remote show origin 2.设置新的仓库地址 1.先登录 gitlab 查看当前仓库地址: 执行修改地址命令 git remote set-url orig ...
- O045、理解 Cinder 架构
参考https://www.cnblogs.com/CloudMan6/p/5573159.html 从本节开始我们学习OpenStack 的 Block Storage Service ,Cin ...
- javascript相关的增删改查以及this的理解
前两天做了一个有关表单增删改查的例子,现在贴出来.主要是想好好说一下this. 下面贴一张我要做的表格效果. 就是实现简单的一个增删改查. 1.点击增加后自动增加一行: 2.点击保存当前行会将属性改成 ...
- sql 存储过程笔记
create procedure SP_Wim_GetWorkSubSectionById(@paramId as int)asbegindeclare @id as int;declare @lvI ...
- (备忘)Java数据类型中String、Integer、int相互间的转换
1.Integer转换成int的方法 Integer i; int k = i.intValue();即Integer.intValue(); 2.int转换成Integer int i; Integ ...
- Python map学习笔记
map是一个高阶用法,字面意义是映射,它的作用就是把一个数据结构映射成另外一种数据结构. map用法比较绕,最好是对基础数据结构很熟悉了再使用,比如列表,字典,序列化这些. map的基本语法如下: m ...
- Hadoop_03_Hadoop分布式集群搭建
一:Hadoop集群简介: Hadoop 集群具体来说包含两个集群:HDFS集群和YARN集群,两者逻辑上分离,但物理上常在一起: HDFS集群:负责海量数据的存储,集群中的角色主要有: NameNo ...