2 条题解

  • 0
    @ 2024-4-12 19:42:20
    #include <iostream>
    #include <queue>
    
    using namespace std;
    
    int main() {
        int n;
        cin >> n;
    
        queue<int> q;
    
        for (int i = 0; i < n; i++) {
            int op;
            cin >> op;
    
            if (op == 1) {
                int x;
                cin >> x;
                q.push(x);
            }
            else if (op == 2) {
                if (q.empty()) {
                    cout << "ERR_CANNOT_POP" << endl;
                }
                else {
                    q.pop();
                }
            }
            else if (op == 3) {
                if (q.empty()) {
                    cout << "ERR_CANNOT_QUERY" << endl;
                }
                else {
                    cout << q.front() << endl;
                }
            }
            else if (op == 4) {
                cout << q.size()<< endl;
            }
        }
    
        return 0;
    }
    
    

    上述代码使用了 queue 标准库来实现队列的操作。首先,我们读入操作次数 n。然后,我们按照给定的操作进行处理。对于操作 1,我们读入要插入的元素 x,并将其压入队列中;对于操作 2,我们检查队列是否为空,若为空则输出错误信息,否则弹出队首元素;对于操作 3,我们同样检查队列是否为空,若为空则输出错误信息,否则输出队首元素;对于操作 4,我们直接输出队列内元素个数。

    • 0
      @ 2024-4-12 19:17:07

      顾名思义模板。我们只需要模拟操作即可。这里使用的是STL栈。

      AC Code:

      #include<bits/stdc++.h>
      #define ll long long
      using namespace std;
      ll n;
      queue<ll> q;
      int main(){
          scanf("%lld",&n);
          for(ll i=1,opt,x;i<=n;i++){
              scanf("%lld",&opt);
              switch(opt){
                  case 1:
                      scanf("%lld",&x);
                      q.push(x);break;
                  case 2:
                      if(q.empty())
                          puts("ERR_CANNOT_POP");
                      else
                          q.pop();break;
                  case 3:
                      if(q.empty())
                          puts("ERR_CANNOT_QUERY");
                      else
                          printf("%lld\n",q.front());break;
                  default:
                      printf("%lld\n",q.size());
              }
          }
          return 0;
      }
      
      • 1

      信息

      ID
      706
      时间
      1000ms
      内存
      128MiB
      难度
      2
      标签
      递交数
      129
      已通过
      82
      上传者