ZCMU-1208-数据结构
来源:互联网 发布:孤岛危机3神优化 编辑:程序博客网 时间:2024/06/07 06:43
1208: 数据结构
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 121 Solved: 33
[Submit][Status][Web Board]
Description
你有一个奇怪的数据结构,他可能是栈(stack),队列(queue),优先队列(priority_queue),或者其他什么奇怪的东西。
假设有n个元素依次进入这个数据结构,并且知道这些元素出去的顺序,你能告诉我这个数据结构是什么吗?
Input
输入包括多组测试数据,每组测试数据的第一行为一个正整数n(1<=n<=1000),第二行包括n个整数代表进入的顺序,第三行也有n个整数代表出去的顺序。
Output
对于每组测试数据,输出可能的数据结构名字。如果有多个数据结构满足,则按顺序输出。若没有数据结构满足,则输出“none”。
Sample Input
3
1 2 3
1 2 3
3
1 2 1
1 2 1
Sample Output
queue priority_queue
stack queue
【解析】
此题的话需要知道优先队列是怎么输出的有两种输出可以自定义,先让小的元素先输出,另一种是让大的元素先输
出,然后我们直接模拟就好了我是把所有的可能性都列举出来了。
#include<iostream>#include<string>#include<vector>#include<cstdio>#include<algorithm>using namespace std;vector<int>a,b;bool cmp(int a,int b){ return a>b;}int main(){ int n,m,i; int count,flag1,flag2,flag3,flag4; while(~scanf("%d",&n)) { count=0; flag1=0; flag2=0; flag3=0; flag4=0; int c[1010]={0}; int d[1010]={0}; a.clear(); b.clear(); for(i=0;i<n;i++) { scanf("%d",&m); c[i]=m; d[n-1-i]=m; a.push_back(m); } for(i=0;i<n;i++) { scanf("%d",&m); b.push_back(m); } sort(c,c+n); for(i=0;i<n;i++) { if(b[i]==c[i]) count++; else if(b[i]!=c[i]) break; } if(count==n)//优先队列 flag1=1; count=0; for(i=0;i<n;i++) { if(a[i]==b[i]) count++; else if(a[i]!=b[i]) break; } if(count==n) flag2=1;//队列 count=0; for(i=0;i<n;i++) { if(d[i]==b[i]) count++; else if(d[i]!=b[i]) break; } if(count==n) flag3=1;//栈 sort(c,c+n,cmp); count=0; for(i=0;i<n;i++) { if(c[i]==b[i]) count++; else break; } if(count==n) flag4=1; if((flag1==1||flag4==1)&&flag2==1&&flag3==0) { cout<<"queue priority_queue"<<endl; } else if((flag1==1||flag4==1)&&flag2==0&&flag3==0) { cout<<"priority_queue"<<endl; } else if((flag1==1||flag4==1)&&flag2==1&&flag3==1) { cout<<"stack queue priority_queue"<<endl; } else if(flag1==0&&flag2==0&&flag3==0&&flag4==0) { cout<<"none"<<endl; } else if(flag1==0&&flag4==0&&flag2==0&&flag3==1) { cout<<"stack"<<endl; } else if(flag1==0&&flag4==0&&flag2==1&&flag3==0) { cout<<"queue"<<endl; } else if((flag1==1||flag4==1)&&flag2==0&&flag3==1) { cout<<"stack priority_queue"<<endl; } else if(flag1==0&&flag2==1&&flag3==1&&flag4==0) { cout<<"stack queue"<<endl; } } return 0;}
0 0
- ZCMU-1208-数据结构
- ZCMU—1208
- zcmu-1657
- zcmu-1685
- ZCMU----1776
- ZCMU----1777
- ZCMU----1778
- ZCMU----1779
- ZCMU-1731
- ZCMU-1658
- ZCMU-1654
- ZCMU-1132
- ZCMU-1037
- ZCMU-1415
- ZCMU-1036
- ZCMU-1723
- ZCMU-1608
- ZCMU-1478
- ORA-25319: Queue table repartitioning aborted
- javascript中的关联数组
- 欢迎使用CSDN-markdown编辑器
- Java面向对象基础
- 欠拟合与过拟合概念
- ZCMU-1208-数据结构
- jQuery DOM 操作
- 深度学习在自动驾驶中的应用
- 使用Django向网页的页面js中传递一个数组的方法
- 《HTTPS权威指南》读后感,作者:阿狸不歌
- 《DSAA》 9.5.2 Kruskal 算法
- caffe使用预训练的模型进行finetune--caffe学习(1)
- Caffe源码解析1:Blob
- win10下用xshell初次连接树莓派