码迷,mamicode.com
首页 > 其他好文 > 详细

UVA 11995 (STL_E题)解题报告

时间:2018-01-21 00:06:39      阅读:241      评论:0      收藏:0      [点我收藏+]

标签:imp   标记   alt   div   sed   none   view   gpo   pac   

题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3146

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

题意:有一种名叫包的数据类型,要求通过输入输出情况判断是哪种数据类型。

思路:模拟题,将三种数据类型模拟出来,按照操作进行模拟。如果出现不符合的情况,标记出来,最后通过标记分析出来可能的数据结构。

注意:要注意不同情况的初始化,或者将数据类型定义在每种情况的局部。

代码:

技术分享图片
#include<cstdio>
#include<stack>
#include<queue>

using namespace std;
int n;

int main(void){
    
    while(~scanf("%d",&n)){
        int flag[3]={0};
        stack<int> s;
        queue<int> q;
        priority_queue<int> pq; 
        for(int i =0;i<n;i++){
            int a =0;int b =0;
            scanf("%d %d",&a,&b);
            
            if(a ==1){
                s.push(b);
                q.push(b);
                pq.push(b); 
            }else {
                if(!s.empty())  
                {  
                    if(s.top() != b)  flag[0] = 1;  
                    s.pop();  
                }  
                else  flag[0] = 1;  

                if(!q.empty())  
                {  
                    if(q.front() != b)  flag[1] = 1;  
                    q.pop();  
                }  
                else  flag[1] = 1;  
  
                if(!pq.empty())  
                {  
                    if(pq.top() != b)  flag[2] = 1;  
                    pq.pop();  
                }  
                else  flag[2] = 1;  
            }  
            }
            int count = 0;
            for(int i =0;i<3;i++){
                count+=flag[i];
            }
            if(count ==3) printf("impossible\n");
            else if(count<2) printf("not sure\n");
            else if(flag[0]==0) printf("stack\n");
            else if(flag[1]==0) printf("queue\n");
            else if(flag[2]==0) printf("priority queue\n");
        }    
    return 0;
}
View Code

 

UVA 11995 (STL_E题)解题报告

标签:imp   标记   alt   div   sed   none   view   gpo   pac   

原文地址:https://www.cnblogs.com/caomingpei/p/8322263.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!