zoukankan      html  css  js  c++  java
  • 2018百度之星初赛(A)2 度度熊学队列

    思路:

    记录一下c++ stl中的双向链表list的各种用法。

    https://blog.csdn.net/fanyun_01/article/details/56881515

    实现:

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 
     4 list<int> a[150005];
     5 
     6 int main()
     7 {
     8     int n, q, t, u, v, w;
     9     while (scanf("%d %d", &n, &q) != EOF)
    10     {
    11         for (int i = 1; i <= n; i++) a[i].clear();
    12         while (q--)
    13         {
    14             scanf("%d", &t);
    15             if (t == 1)
    16             {
    17                 scanf("%d%d%d", &u, &w, &v);
    18                 if (w == 0) a[u].push_front(v);
    19                 else a[u].push_back(v);
    20             }
    21             else if (t == 2)
    22             {
    23                 scanf("%d%d", &u, &w);
    24                 int ans;
    25                 if (a[u].empty()) ans = -1;
    26                 else if (w == 0)
    27                 {              
    28                     ans = a[u].front(); a[u].pop_front();
    29                 }
    30                 else
    31                 {
    32                     ans = a[u].back(); a[u].pop_back();
    33                 }
    34                 printf("%d
    ", ans);
    35             }
    36             else
    37             {
    38                 scanf("%d%d%d", &u, &v, &w);
    39                 if (w == 1) a[v].reverse();
    40                 a[u].splice(a[u].end(), a[v]);
    41             }
    42         }
    43     }
    44     return 0;
    45 }
  • 相关阅读:
    UVA10891
    UVA10453
    UVA 10201
    UVA10154
    UVA11137
    UVA10617
    UVA10271
    UVA10739
    UVA10306
    节流防抖
  • 原文地址:https://www.cnblogs.com/wangyiming/p/9513391.html
Copyright © 2011-2022 走看看