• C Mergeable Stack(list超好用)


    ZOJ  4016

    list用法https://www.cnblogs.com/LLLAIH/p/10673068.html

    一开始用普通的栈做,超内存,链表模拟栈也没写出来orz.
    补题发现list超好用,真的-6-

    有三个操作:1/向栈里添加数

                          2/输出栈顶元素然后pop掉

                          3/将栈b合并到栈a里并将栈b清空(注意合并后的顺序)

    注意注意注意!!一定要将需要使用的list元素进行清空否则会WA!!

    注意合并两个list序列时,用merge的话,会将合并后的序列进行默认的升序排列,所以这题要用splice

    #include <cmath>
    #include <cstdio>
    #include <cstring>
    #include <cstdlib>
    #include <iostream>
    #include <algorithm>
    #include <list>
    #include <map>
    #include<stack>
    #include<vector>
    #define eps 1e-6
    #define mod 1000000000
    #define PI acos(-1)
    #define inf 0x3f3f3f3f
    #define MAX 3e5+5
    #define read(x) scanf("%d",&x)
    #define mem(a,b) memset(a,b,sizeof(a))
    using namespace std;
    const int maxn=300005;
    typedef long long LL;
    list<int> a[maxn];
    int main(){
        int t,n,q,s,v;
        scanf("%d",&t);
        while(t--){
            int op;
            list<int>::iterator it;
            scanf("%d%d",&n,&q);
            for(int i=1;i<=n;i++)
                a[i].clear();//清空list里每个元素
            for(int i=1;i<=q;i++){
                scanf("%d",&op);
                if(op == 1){
                    scanf("%d%d",&s,&v);
                    a[s].push_back(v);//将元素从尾部插入
                }
                else if(op == 2){
                    scanf("%d",&s);
                    if(a[s].empty())//判断该栈是否为空
                    {
                        printf("EMPTY
    ");
                        continue;
                    }
                    printf("%d
    ",a[s].back());//输出栈顶元素即尾部第一个元素
                    a[s].pop_back();//将栈顶元素弹出
                }
                else {
                    scanf("%d%d",&s,&v);
                    a[s].splice(a[s].end(),a[v]);//将栈v合并到栈s,并清空栈v
                }
            }
        }
        return 0;
    }
  • 相关阅读:
    测试用例(等价类和边界值方法)
    缺陷报告的组成
    软件测试QA、QC、QM的关系与区别
    软件的开发模式
    软件工程及生命周期
    互联网产品类型与产品工具
    canvas 时钟
    test2
    test121212
    关于iOS和OS X废弃的API你需要知道的一切
  • 原文地址:https://www.cnblogs.com/LLLAIH/p/10672988.html
Copyright © 2020-2023  润新知