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” 。

输入输出样例

输入样例#1:

2
1 1
2 1
输出样例#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 数据结构判断的更多相关文章

  1. 11-10 CC150第一章

    题目: 1.1 Implement an algorithm to determine if a string has all unique characters. What if you can n ...

  2. 【笔试】T实习生2014 总结

    2014.4.12 是T的广州站,就在本校,很方便.考前一两天,临时抱佛脚,看着HTMLdog上的网页知识.就算考前,还在懊悔自己为什么不好好利用清明假期,多看点,看多点?哎,哎.. 谁知道一拿到试卷 ...

  3. MONGO的简单语法,新手实用

    window上启动方式:(简单略) mongod --dbpath E:\study_lib\mongodb\db --port=27000 show dababases; (创建配置文件的启动方式) ...

  4. form数据请求参数格式

    请求后台参数格式问题 当请求后台传递参数时,有多中类型,而每一种都需要前后台进行配合,而这有时候会很简单,有时候却十分困难,记录一下,以备后期深究 数据 后台需要的数据 form表单 嵌套数据,第二层 ...

  5. Fabric1.4源码解析:客户端安装链码

          看了看客户端安装链码的部分,感觉还是比较简单的,所以在这里记录一下.       还是先给出安装链码所使用的命令好了,这里就使用官方的安装链码的一个例子: #-n 指定mycc是由用户定义 ...

  6. BZOJ 1067:[SCOI2007]降雨量(RMQ+思维)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1067 题意:…… 思路:首先我们开一个数组记录年份,一个记录降雨量,因为年份是按升序排列的,所以我们 ...

  7. 蓝桥杯 试题 历届试题 发现环 并查集+dfs

    问题描述 小明的实验室有N台电脑,编号1~N.原本这N台电脑之间有N-1条数据链接相连,恰好构成一个树形网络.在树形网络上,任意两台电脑之间有唯一的路径相连. 不过在最近一次维护网络时,管理员误操作使 ...

  8. redis 数据删除策略和逐出算法

    数据存储和有效期 在 redis 工作流程中,过期的数据并不需要马上就要执行删除操作.因为这些删不删除只是一种状态表示,可以异步的去处理,在不忙的时候去把这些不紧急的删除操作做了,从而保证 redis ...

  9. 腾讯暑期 前后七面 + hr(已拿offer面经)

    以下是时间线 魔方 魔术师工作室 3.19 一面(120mins) c++ struct和union区别? 指针和引用的区别? 左值和右值? 字节对齐的作用? 什么情况下需要自定义new? mallo ...

随机推荐

  1. Codeforces Round #Pi (Div. 2) C. Geometric Progression

    C. Geometric Progression time limit per test 1 second memory limit per test 256 megabytes input stan ...

  2. bzoj3134: [Baltic2013]numbers

    稍微用脑子想一想,要是一个回文数,要么s[i]==s[i+1]要么s[i]==s[i+2]就可以实锤了 所以多开两维表示最近两位选的是什么数就完了 注意前导0 #include<cstdio&g ...

  3. hdu 1400 Mondriaan's Dream 解题报告

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1400 题目意思:给出一个h * w的 大 矩形,需要用 1 * 2 的砖块去填充这个大矩形,问填充的方 ...

  4. java时间类型转换 JsonValueProcessor

    问题描述: java里面时间类型转换成json数据就成这样了:"createTime":{"date":30,"day":3,"h ...

  5. (转)Linux下 SVN客户端安装

    原地址:http://rtxbc.iteye.com/blog/860092 今天有现场程序连svn服务器一直有异常,于是在现场linux下安装svn client来直接测试,看问题原因: 一:安装s ...

  6. HDUoj4857逃生 拓扑排序

    逃生 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...

  7. 【扬中集训Day6T1】 白日梦

    [题目描述] 白日梦 (daydream.c/cpp/pas) 时间限制: 1 s  空间限制: 256 MB 题目描述 SR需要相当大的睡眠量 某日,他做了一个奇怪的梦,他梦见自己成为了怪物猎人,为 ...

  8. Watir: Watir webdriver对JS 弹出框的操作现在非常简单。

    以下代码支持Firefox,IE,Chrome require 'watir-webdriver' #require "watir-webdriver/extensions/alerts&q ...

  9. linux部署web项目到tomcat下(图文详解)

    大家好,相信不少初学者不知道如何将windows eclipse下开发的web项目部署到linux系统的tomcat下,今天我将图文并茂教大家 首先呢,比如我新建一个web项目,打开eclipse编辑 ...

  10. JAVA线程同步 (三)信号量

    一个信号量有且仅有3种操作,且它们全部是原子的:初始化.增加和减少 增加可以为一个进程解除阻塞: 减少可以让一个进程进入阻塞. 信号量维护一个许可集,若有必要,会在获得许可之前阻塞每一个线程:     ...