博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
qu(判定操作序列)NOIP模拟 数据结构判断 模拟
阅读量:7015 次
发布时间:2019-06-28

本文共 1672 字,大约阅读时间需要 5 分钟。

【问题描述】 给你一个操作序列,问这个维护操作序列的数据结构是哪一种?

【输入格式】 第一行是一个正整数?代表操作数目。 接下来?行,每行两个正整数???, ?。如果??? = 1,代表我们将?加入数据结构;如果??? = 2,代表我们从数据结构中取出了一个元素,这个元素的值是?。

【输出格式】 输出三行,第一行代表数据结构是否可能是栈,第二行代表数据结构是否可 能是队列,第三行代表数据结构是否可能大根堆。每一行的结果都只可能是“YES” 或者“No”。

根据题意,建立三种数据结构:队列、优先队列(本质是大根堆)和栈,然后模拟即可。

坑点有两个。

一个是,当数据全部弹出后,还有弹出操作,那一定不满足任意数据结构,三个都是No

第二个,题目的YES是全部大写的,但是No的o是小写的。

附上代码

#include
#include
using namespace std;template
inline void read(T &_a){ bool f=0;int _ch=getchar();_a=0; while(_ch<'0' || _ch>'9'){
if(_ch=='-')f=1;_ch=getchar();} while(_ch>='0' && _ch<='9'){_a=(_a<<1)+(_a<<3)+_ch-'0';_ch=getchar();} if(f)_a=-_a;}int n,opt,v,stack[10001],head;bool ansq=true,anspq=true,ansstk=true;queue
q;priority_queue
pq;int main(){ freopen("qu.in","r",stdin); freopen("qu.out","w",stdout); read(n); for (register int i=1;i<=n;++i) { read(opt); read(v); if(opt==1) { if(ansq) q.push(v); if(ansstk) stack[++head]=v; if(anspq) pq.push(v); } else { if(ansstk) { if(head&&stack[head]==v) --head; else ansstk=false; } if(ansq) { if(!q.empty()&&q.front()==v) q.pop(); else ansq=false; } if(anspq) { if(!pq.empty()&&pq.top()==v) pq.pop(); else anspq=false; } } } printf("%s\n%s\n%s",ansstk?"YES":"No",ansq?"YES":"No",anspq?"YES":"No"); return 0;}

 

转载于:https://www.cnblogs.com/jaywang/p/7755945.html

你可能感兴趣的文章
Spring中常用的注解(@Entity,@Table,@Column,@Repository,@Service)
查看>>
SharePoint 2013 配置传入电子邮件(一)
查看>>
Linux命令篇之chsh命令和chfn命令
查看>>
Useful websites
查看>>
转贴:下辈子,无论爱与不爱,都不会再见
查看>>
内核mailbox
查看>>
echarts - 树图实现四个层级
查看>>
【Kotlin】spring boot项目中,在Idea下启动,报错@Configuration class 'BugsnagClient' may not be final....
查看>>
Leetcode | Merge k Sorted Lists
查看>>
深入理解JavaScript(1)
查看>>
foreach遍历----for(object o: list)
查看>>
iOS被开发者遗忘在角落的NSException-其实它很强大
查看>>
java.lang.IllegalArgumentException: Can not set int field *** to null value
查看>>
NSString类的相关用法
查看>>
Python编写简单计算器(正则表达式应用)
查看>>
KMP - HDU 1711 Number Sequence
查看>>
Storm 第四章 Storm常见问题
查看>>
「每日一码」(精品代码,质量保证)阶乘
查看>>
python日常使用
查看>>
进位标志位
查看>>