UVA 11995 (STL_E题)解题报告

Posted caomingpei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UVA 11995 (STL_E题)解题报告相关的知识,希望对你有一定的参考价值。

题目链接: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题)解题报告的主要内容,如果未能解决你的问题,请参考以下文章

UVA 10054(DFS_G题)解题报告

UVA11995 I Can Guess the Data Structure!

UVA 12627(递推&递归_H题)解题报告

UVA 12034(递推&递归_I题)解题报告

UVa -1584 Circular Sequence 解题报告

UVa 11995 猜猜数据结构