T4308 数据结构判断
https://www.luogu.org/record/show?rid=2143639
题目描述
在世界的东边,有三瓶雪碧。
——laekov
黎大爷为了虐 zhx,给 zhx 出了这样一道题。黎大爷搞了一个数据结构,但
是他没有告诉 zhx 这到底是什么数据结构,我们只知道这是一个数据结构。为了
让 zhx 知道这是什么数据结构,黎大爷制造了很多次的输入和输出操作。每次加
入操作,黎大爷会告诉你他向这个数据结构加入了一个数并告诉你这是多少;每
次取出操作,黎大爷会从数据结构之中取出一个数并告诉这是多少。黎大爷希望
zhx 根据这些操作来判断这是什么数据结构,但是 zhx 觉得这题太难了所以跑路
了,于是黎大爷把这道题扔给了你。
输入输出格式
输入格式:
第一行一个整数N代表操作的数目。
接下来N行,每行两个整数opt,v。如果opt = 1,代表黎大爷把v加入了数据
结构;如果opt = 2,代表了黎大爷从数据结构中取出了一个数,值是v。
输出格式:
输出总共三行,第一行代表数据结构是否可能是栈,第二行代表数据结构是
否可能是队列,第三行代表数据结构是否可能大根堆。每一行的结果都只可能是
“YES”或者“NO” 。
输入输出样例
2
1 1
2 1
YES
YES
YES
说明
对于100%的数据,1 ≤ n ≤ 10 3 。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
#include<stack>
using namespace std;
int ans1,ans2,ans3;//默认是目标数据结构
stack<int>s;
queue<int>q;
priority_queue<int>heap;
int main()
{
int n;
cin>>n;
for(int i=;i<=n;i++)
{
int p,d;
cin>>p;
if(p==)
{
cin>>d;
s.push(d);q.push(d);heap.push(d);
}
else
{
cin>>d;
if(s.size()==||q.size()==||heap.size()==)
{
cout<<"NO"<<endl;
cout<<"NO"<<endl;
cout<<"NO"<<endl;
return ;
}
if(d!=s.top())ans1=;
if(s.size()!=)
s.pop(); if(d!=q.front())ans2=;
if(q.size()!=)
q.pop(); if(d!=heap.top())ans3=;
if(heap.size()!=)
heap.pop(); }
}
if(ans1==)
cout<<"YES"<<endl;
else cout<<"NO"<<endl;
if(ans2==)
cout<<"YES"<<endl;
else cout<<"NO"<<endl;
if(ans3==)
cout<<"YES"<<endl;
else cout<<"NO"<<endl;
return ;
}
T4308 数据结构判断的更多相关文章
- 11-10 CC150第一章
题目: 1.1 Implement an algorithm to determine if a string has all unique characters. What if you can n ...
- 【笔试】T实习生2014 总结
2014.4.12 是T的广州站,就在本校,很方便.考前一两天,临时抱佛脚,看着HTMLdog上的网页知识.就算考前,还在懊悔自己为什么不好好利用清明假期,多看点,看多点?哎,哎.. 谁知道一拿到试卷 ...
- MONGO的简单语法,新手实用
window上启动方式:(简单略) mongod --dbpath E:\study_lib\mongodb\db --port=27000 show dababases; (创建配置文件的启动方式) ...
- form数据请求参数格式
请求后台参数格式问题 当请求后台传递参数时,有多中类型,而每一种都需要前后台进行配合,而这有时候会很简单,有时候却十分困难,记录一下,以备后期深究 数据 后台需要的数据 form表单 嵌套数据,第二层 ...
- Fabric1.4源码解析:客户端安装链码
看了看客户端安装链码的部分,感觉还是比较简单的,所以在这里记录一下. 还是先给出安装链码所使用的命令好了,这里就使用官方的安装链码的一个例子: #-n 指定mycc是由用户定义 ...
- BZOJ 1067:[SCOI2007]降雨量(RMQ+思维)
http://www.lydsy.com/JudgeOnline/problem.php?id=1067 题意:…… 思路:首先我们开一个数组记录年份,一个记录降雨量,因为年份是按升序排列的,所以我们 ...
- 蓝桥杯 试题 历届试题 发现环 并查集+dfs
问题描述 小明的实验室有N台电脑,编号1~N.原本这N台电脑之间有N-1条数据链接相连,恰好构成一个树形网络.在树形网络上,任意两台电脑之间有唯一的路径相连. 不过在最近一次维护网络时,管理员误操作使 ...
- redis 数据删除策略和逐出算法
数据存储和有效期 在 redis 工作流程中,过期的数据并不需要马上就要执行删除操作.因为这些删不删除只是一种状态表示,可以异步的去处理,在不忙的时候去把这些不紧急的删除操作做了,从而保证 redis ...
- 腾讯暑期 前后七面 + hr(已拿offer面经)
以下是时间线 魔方 魔术师工作室 3.19 一面(120mins) c++ struct和union区别? 指针和引用的区别? 左值和右值? 字节对齐的作用? 什么情况下需要自定义new? mallo ...
随机推荐
- uboot配置和编译过程详解【转】
本文转载自:http://blog.csdn.net/czg13548930186/article/details/53434566 uboot主Makefile分析1 1.uboot version ...
- HDU3709 Balanced Number —— 数位DP
题目链接:https://vjudge.net/problem/HDU-3709 Balanced Number Time Limit: 10000/5000 MS (Java/Others) ...
- dns服务器报错解决
搭了个dns服务器,配置完毕老是报错,这里总结一下常见思路: ①关闭firewalld ②关闭selinux ③/var/named里面的配置文件所属用户组是否是root:named ④named.c ...
- YTU 1055: 输入字符串以及输出
1055: 输入字符串以及输出 时间限制: 1 Sec 内存限制: 128 MB 提交: 694 解决: 476 题目描述 编写一函数,由实参传来一个字符串,统计此字符串中字母.数字.空格和其它字 ...
- PHP——巧用PHP函数array_merge()合并数组
前言 返回联系人列表,包含所有的字母,之前返回的是存在这个联系人才会返回对应的大写字母,后面更改了要求要返回所有的字母从A-Z.PHP内置的一些函数活用起来,真的很省劲! 步骤 一般这时候大家可能直接 ...
- html5--6-41 CSS背景
html5--6-41 CSS背景 实例 学习要点 掌握CSS背景属性的使用 元素的背景属性: background 简写属性,作用是将背景属性设置在一个声明中. background-attachm ...
- CollapsingToolbarLayout 收缩显示tilte
final CollapsingToolbarLayout collapsingToolbarLayout = (CollapsingToolbarLayout) findViewById(R.id. ...
- Servlet初始配置 监听器和过滤器
ServletContext:application范围内的参数 此所设定的参 来源: http://note.sdo.com/my 数,在JSP网页中可以使用下列方法来取得: ${initParam ...
- label标签的可访问性
与表单元素关联的方法(IE6下label标签包裹控件的方法是不顶用的): 1 使用for和id关联控件 <p><label for="test">标签< ...
- C++实现查找链表中环的入口节点
/* * 寻找链表中环的入口节点.cpp * * Created on: 2018年4月10日 * Author: soyo */ #include<iostream> using nam ...