zoukankan      html  css  js  c++  java
  • uva 11995 I Can Guess the Data Structure stack,queue,priority_queue

    题意:给你n个操做,判断是那种数据结构。

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstdlib>
     4 #include<stack>
     5 #include<queue>
     6 using namespace std;
     7 int n;
     8 int v[1010],u[1010];
     9 
    10 int ck_q()
    11 {
    12     //cout<<"!!"<<endl;
    13     queue<int>s;
    14     for(int i=0; i<n; i++)
    15     {
    16         if(v[i]==2)
    17         {
    18             if(s.empty())
    19                 return 0;
    20             int x=s.front();
    21             s.pop();
    22             if(x!=u[i])
    23                 return 0;
    24         }
    25         else
    26             s.push(u[i]);
    27     }
    28     return 1;
    29 }
    30 
    31 int ck_s()
    32 {
    33     stack<int>s;
    34     for(int i=0; i<n; i++)
    35     {
    36         if(v[i]==2)
    37         {
    38             if(s.empty())
    39                 return 0;
    40             int x=s.top();
    41             s.pop();
    42             if(x!=u[i])
    43                 return 0;
    44         }
    45         else
    46             s.push(u[i]);
    47     }
    48     return 1;
    49 }
    50 
    51 int ck_d()
    52 {
    53     priority_queue<int>s;
    54     for(int i=0; i<n; i++)
    55     {
    56         if(v[i]==2)
    57         {
    58             if(s.empty())
    59                 return 0;
    60             int x=s.top();
    61             s.pop();
    62             if(x!=u[i])
    63                 return 0;
    64         }
    65         else
    66             s.push(u[i]);
    67     }
    68     return 1;
    69 }
    70 int main()
    71 {
    72     while(~scanf("%d",&n))
    73     {
    74         for(int i=0; i<n; i++)
    75         {
    76             scanf("%d%d",&v[i],&u[i]);
    77         }
    78         int s=ck_s();
    79         int q=ck_q();
    80         int d=ck_d();
    81         //cout<<s<<" "<<q<<" "<<d<<endl;
    82         if(s&&!q&&!d)
    83             printf("stack
    ");
    84         else if(!s&&q&&!d)
    85             printf("queue
    ");
    86         else if(!s&&!q&&d)
    87             printf("priority queue
    ");
    88         else if(!s&&!q&&!d)
    89             printf("impossible
    ");
    90         else
    91             printf("not sure
    ");
    92     }
    93     return 0;
    94 }
    View Code
  • 相关阅读:
    PHP面试总结
    yii2-dingtalk 钉钉群机器人
    分布式锁机制原理及实现方式
    strtotime的一个使用问题
    JavaScript的程序构成
    libsvm源码凝视+算法描写叙述:svm_train
    android事件分发(二)
    Windows 上通过本地搭建 Jekyll环境
    重点:用户画像
    easyui英文提示变中文
  • 原文地址:https://www.cnblogs.com/ITUPC/p/5074422.html
Copyright © 2011-2022 走看看