UVA11995 I Can Guess the Data Structure!
2024-10-11 22:53:32
思路
简单题,用栈,队列,优先队列直接模拟即可
代码
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <queue>
#include <stack>
using namespace std;
queue<int> q;
stack<int> S;
priority_queue<int> pq;
int n;
int main(){
while(scanf("%d",&n)==1){
while(!q.empty())
q.pop();
while(!S.empty())
S.pop();
while(!pq.empty())
pq.pop();
bool isS=true,isq=true,ispq=true;
for(int i=1;i<=n;i++){
int opt,x;
scanf("%d %d",&opt,&x);
if(opt==1){
q.push(x);
pq.push(x);
S.push(x);
}
else{
if(q.empty())
isq=false;
if(pq.empty())
ispq=false;
if(S.empty())
isS=false;
if(isq){
int t=q.front();
if(t!=x)
isq=false;
q.pop();
}
if(ispq){
int t=pq.top();
if(t!=x)
ispq=false;
pq.pop();
}
if(isS){
int t=S.top();
if(t!=x)
isS=false;
S.pop();
}
}
}
if((!ispq)&&(!isq)&&(!isS))
printf("impossible\n");
else if((ispq)&&(!isq)&&(!isS))
printf("priority queue\n");
else if((!ispq)&&(isq)&&(!isS))
printf("queue\n");
else if((!ispq)&&(!isq)&&(isS))
printf("stack\n");
else
printf("not sure\n");
}
return 0;
}
最新文章
- 学习AOP之透过Spring的Ioc理解Advisor
- css深入理解z-index
- (小常识)Dictionary的遍历
- js导入导出excel
- The vboxdrv kernel module is not loaded
- HDU 1078 FatMouse and Cheese(记忆化搜索)
- 转:从三层架构到MVC-MVP
- android之硬件访问服务框架
- WPF的消息机制
- XHTML 与 HTML 之间的差异
- Sencha Extjs4.2 皮肤制作
- Ext viewport的渲染
- 如何让一个DIV水平,垂直方向都居中于浏览器?
- python django基础五 ORM多表操作
- 提取IPv6地址的编码信息
- Python 私有
- Netstat Commands for Linux Network Management
- luoguP1080 国王游戏 (贪心+高精度)
- Oracle学习笔记之三,Oracle 11g数据库的启动与关闭
- errorlevel 续2
热门文章
- [Educational Round 3][Codeforces 609E. Minimum spanning tree for each edge]
- JavaScript——this
- javascript 回调 继承
- jquery网页倒计时效果,秒杀
- Django-- KindEditor 富文本编辑器使用
- Elasticsearch学习笔记(三)聚合分析Agg
- EasyUI实现分页、搜索、行按钮功能
- @Value(";${xxxx}";)注解的配置及使用
- VUE—打印(原生态网页打印)
- 【Go语言】基本的语法