UVA 11995 I Can Guess the Data Structure! (STL的基本操作)
来源:互联网 发布:张龙java视频 编辑:程序博客网 时间:2024/05/22 17:38
I Can Guess the Data Structure!
There is a bag-like data structure, supporting two operations:
1 x Throw an element x into the bag.
2 Take out an element from the bag.
Given a sequence of operations with return values, you’re going to guess the data structure. It is
a stack (Last-In, First-Out), a queue (First-In, First-Out), a priority-queue (Always take out larger
elements first) or something else that you can hardly imagine!
Input
There are several test cases. Each test case begins with a line containing a single integer n (1 ≤ n ≤
1000). Each of the next n lines is either a type-1 command, or an integer 2 followed by an integer x.
That means after executing a type-2 command, we get an element x without error. The value of x
is always a positive integer not larger than 100. The input is terminated by end-of-file (EOF).
Output
For each test case, output one of the following:
stack It’s definitely a stack.
queue It’s definitely a queue.
priority queue It’s definitely a priority queue.
impossible It can’t be a stack, a queue or a priority queue.
not sure It can be more than one of the three data structures mentioned
above.
Sample Input
6
1 1
1 2
1 3
2 1
2 2
2 3
6
1 1
1 2
1 3
2 3
2 2
2 1
2
1 1
2 2
4
1 2
1 1
2 1
2 2
7
1 2
1 5
1 1
1 3
2 5
1 4
2 4
Sample Output
queue
not sure
impossible
stack
priority queue
思路:模拟三种不同数据结构类型的基本操作就好,别想其它方法了宝贝们(我不会告诉你我没用STL之前WA了N次)
#include <iostream>#include <algorithm>#include <cstdio>#include <cstring>#include <sstream>#include <cmath>#include <map>#include <queue>#include <stack>using namespace std;const int maxn = 1e3 + 10;int n;int main(){ while(scanf("%d", &n)!=EOF) { if(n<1 || n>1000) break; queue<int> q1; stack<int> s; priority_queue<int> q2; int flag1 = 1, flag2 = 1, flag3 = 1, x; for(int i = 0; i < n; i++) { cin >> x; if(x==1) { cin >> x; q1.push(x); q2.push(x); s.push(x); } else { cin >> x; if(s.empty()) { flag1 = flag2 = flag3 = 0; break; } int temp = s.top(); s.pop(); if(x!=temp) flag2 = 0; temp = q1.front(); q1.pop(); if(x!=temp) flag1 = 0; temp = q2.top(); q2.pop(); if(x!=temp) flag3 = 0; //cout << flag1 << endl; //cout << flag2 << endl; //cout << flag3 << endl; } } if(flag1+flag2+flag3>1) cout << "not sure" << endl; else if(flag3) cout << "priority queue" << endl; else if(flag1) cout << "queue" << endl; else if(flag2) cout << "stack" << endl; else cout << "impossible" << endl; } return 0;}
- UVA 11995 I Can Guess the Data Structure! (STL的基本操作)
- uva 11995 I Can Guess the Data Structure!(STL)
- UVa 11995 I Can Guess the Data Structure! (STL)
- UVA 11995 I Can Guess the Data Structure!(STL应用)
- UVA - 11995 I Can Guess the Data Structure! STL模板
- UVA 11995 - I Can Guess the Data Structure!【stl】
- UVA: I Can Guess the Data Structure!(stl模拟)
- UVA 11995 - I Can Guess the Data Structure! (数据结构) STL的应用
- uva 11995 I Can Guess the Data Structure! (STL的简单应用)
- UVA 11995 - I Can Guess the Data Structure! (基本数据结构)
- UVA-11995 I Can Guess the Data Structure!(STL:各容器的简单运用)
- UVA 11995 I Can Guess the Data Structure! (STL的应用)
- UVa-11995 I Can Guess the Data Structure!(STL的使用)
- UVA - 11995 I Can Guess the Data Structure!(水题)
- 水题(I Can Guess the Data Structure!,UVA 11995)
- UVA 11995:I Can Guess the Data Structure!(水)
- uva 11995 - I Can Guess the Data Structure!(STL应用)
- UVA - 11995 I Can Guess the Data Structure! 猜猜数据结构(STL模拟)
- struct struct
- 7.26欢乐爆零赛【字符串】
- NYOJ 55-懒省事的小明
- 三丶java流程控制语句,算法,方法定义
- GCD HDU
- UVA 11995 I Can Guess the Data Structure! (STL的基本操作)
- Nginx文档-初学者指南
- PAT乙级 1065. 单身狗(25)
- js事件委托及其原理
- CSU-ACM2017暑假集训比赛1 C
- 二进制,十进制,十六进制互相转化
- 笔记本问题的解决方案
- BIOS启动报警声全集
- 博弈论(一):Nim游戏