uva 11995 I Can Guess the Data Structure!
https://vjudge.net/problem/UVA-11995
题意:
现在有一个未知的数据结构,给出n个操作,如果说操作为1的话,给出一个x放入这个结构,如果说操作为2的话,表示从里面拿出来了一个数x。
现在问是否有一种数据结构符合这组数据的操作,给定的数据结构有栈,队列,优先队列。
思路:
由于有了现成的stl,那么直接模拟算算是否符合就行了,注意容器要判断容器是否为空。
代码:
1 #include <stdio.h> 2 #include <stack> 3 #include <queue> 4 using namespace std; 5 6 stack<int> s; 7 queue<int> q; 8 priority_queue<int> pq; 9 10 struct node 11 { 12 int op; 13 int x; 14 } a[1005]; 15 16 int main() 17 { 18 int n; 19 20 while (scanf("%d",&n) != EOF) 21 { 22 while (!s.empty()) s.pop(); 23 while (!q.empty()) q.pop(); 24 while (!pq.empty()) pq.pop(); 25 26 for (int i = 0;i < n;i++) 27 { 28 scanf("%d%d",&a[i].op,&a[i].x); 29 } 30 31 bool f = 0,ff = 0,fff = 0; 32 33 for (int i = 0;i < n;i++) 34 { 35 if (a[i].op == 1) 36 { 37 s.push(a[i].x); 38 } 39 else 40 { 41 int tmp; 42 43 if (s.empty()) 44 { 45 f = 1;break; 46 } 47 else if (!s.empty()) tmp = s.top(),s.pop(); 48 49 if (tmp != a[i].x) 50 { 51 f = 1;break; 52 } 53 } 54 } 55 56 for (int i = 0;i < n;i++) 57 { 58 if (a[i].op == 1) 59 { 60 q.push(a[i].x); 61 } 62 else 63 { 64 if (q.empty()) 65 { 66 ff = 1;break; 67 } 68 else if (!q.empty()) 69 { 70 int tmp = q.front();q.pop(); 71 72 if (tmp != a[i].x) 73 { 74 ff = 1;break; 75 } 76 } 77 } 78 } 79 80 for (int i = 0;i < n;i++) 81 { 82 if (a[i].op == 1) pq.push(a[i].x); 83 else 84 { 85 if (pq.empty()) 86 { 87 fff = 1;break; 88 } 89 else if (!pq.empty()) 90 { 91 int tmp = pq.top();pq.pop(); 92 93 if (tmp != a[i].x) 94 { 95 fff = 1;break; 96 } 97 } 98 } 99 } 100 101 int cnt = 0; 102 103 if (f) cnt++; 104 if (ff) cnt++; 105 if (fff) cnt++; 106 107 if (cnt == 3) printf("impossible\n"); 108 else if (cnt <= 1) printf("not sure\n"); 109 else 110 { 111 if (!f) printf("stack\n"); 112 if (!ff) printf("queue\n"); 113 if (!fff) printf("priority queue\n"); 114 } 115 } 116 117 118 119 return 0; 120 }
转载于:https://www.cnblogs.com/kickit/p/7635938.html
uva 11995 I Can Guess the Data Structure!相关推荐
- UVA 11995 I Can Guess the Data Structure! STL
题目链接: UVA很难登上去吧...... 题目大意: 给你几组输入与输出让你判断是栈,队列, 堆, 还是不确定, 还是哪种也不是 解题思路: 这题看起来很简单, 搞几个标准STL, 和结果一对比就知 ...
- uva 11995——I Can Guess the Data Structure!
题意:给定一个包,然后给定这个包的一些操作以此来判断包的数据结构类型. 思路:直接按照stl来模拟即可. code: #include <bits/stdc++.h> using name ...
- LeetCode Two Sum III - Data structure design
原题链接在这里:https://leetcode.com/problems/two-sum-iii-data-structure-design/ 题目: Design and implement a ...
- leetcode 211. Add and Search Word - Data structure design Trie树
题目链接 写一个数据结构, 支持两种操作. 加入一个字符串, 查找一个字符串是否存在.查找的时候, '.'可以代表任意一个字符. 显然是Trie树, 添加就是正常的添加, 查找的时候只要dfs查找就可 ...
- leetcode Add and Search Word - Data structure design
我要在这里装个逼啦 class WordDictionary(object):def __init__(self):"""initialize your data str ...
- TRIE - Data Structure
Introduction 介绍 Trie,又称单词查找树,是一种树形结构,用于保存大量的字符串.它的优点是:利用字符串的公共前缀来节约存储空间. Trie is an ordered tree dat ...
- 牛客小白月赛11:Rinne Loves Data Structure
Rinne Loves Data Structure 思路 我们插入的位置大概分了四种: 第一种 显然我们找到比当前插入的值的pre,也就是比当前节点大的最小值. 第二种 我们只要找到当前节点的suc ...
- HDU - 7072 Boring data structure problem 双端队列 + 思维
传送门 文章目录 题意: 思路: 题意: 你需要实现如下四个操作 q≤1e7q\le1e7q≤1e7 思路: 做的时候想了个链表的思路让队友写了,懒. 看了题解感觉题解还是很妙的. 你需要快速插入一个 ...
- HDU - 6967 G I love data structure 线段树维护矩阵 + 细节
传送门 文章目录 题意: 思路: 题意: 给你两个长度为nnn的数组a,ba,ba,b,你需要完成如下四种操作: 思路: 思路还是比较简单的,首先建一颗线段树,线段树中维护a,b,a2,b2,aba, ...
最新文章
- golang 多行字符串 字符串太长分行写
- CertEnroll::CX509Enrollment::p_InstallResponse:ASN1 bad tag value met. 0x8009310b
- JdbcTemplate中的query方法(代码)
- Http-tunnel突破单位网管封杀QQ、MSN端口的方法
- vs.net 中编译链接vc工程时的LNK171@mspdb140.dll错误处理
- 2012年11月04日春色满园关不住freeeim源码哇
- 关于msi格式的程序包的安装
- Redis,Memcache,MongoDb的特点与区别
- php岗位专业技能,PHP简历专业技能怎么写
- vertical-align和line-height的深入应用
- 4.1 编程语言的几个发展阶段
- Careercup | Chapter 3
- (转)直击马云虞锋闭门对话,3小时谈透未来变革大势,定调千亿美元目标
- Java集合---概述(1)
- php生成图形验证码的几种方法
- 华为android出现短路怎么办,华为手机无法开机原因解析及解决方法
- python傅立叶光顺_函数型数据分析若干方法及应用
- 智能制造与大数据平台
- 你的Web系统真的安全吗?
- CTA认证system_process定位联网未明示问题
热门文章
- 百万TPS高吞吐、秒级低延迟,阿里​搜索离线平台如何实现?
- 怎么能学好Java开发,学好Java一般需要多少钱
- Galgame研发日志:独立游戏制作前应当进行的第一步
- 【MySQL】查看MySQL配置文件路径及相关配置
- ORACLE 11g R2 RAC群集堆栈的关闭过程分析
- python基础-2
- gzip, gunzip, zcat - 压缩或展开文件
- 值更新事件(触发带基础属性到指定字段)
- 在线的IDE(compilr)支持图形界面,支持C,C++,JAVA
- 谈搜索架构师的不同阶段