百度之星-1002-list应用

Posted bluefly-hrbust

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了百度之星-1002-list应用相关的知识,希望对你有一定的参考价值。

  用stl的list即可,注意。。。代码的简洁性(被debug伤痛)注意合并时可以手动pop,或者用splice进行合并,不能用merge!!!merge合并是自带排序!!!

#include<bits/stdc++.h>
#include<deque>
using namespace std;
inline int read(){
    char c=getchar();int x=0,f=1;
    while(c<0||c>9){if(c==-)f=-1;c=getchar();}
    while(c>=0&&c<=9){x=x*10+c-0;c=getchar();}
    return x*f;
}
std::list<int>::iterator it;
int main()
{
    int n,q,cmd;
    int u,w,val,s,v;
    int ans;
    while(~scanf("%d%d",&n,&q))
    {
        list<int>que[150005];
        while(q--)
        {
            cmd=read();
            if(cmd==1)
            {
                u=read();w=read();val=read();
                if (w)
                {
                    que[u].push_back(val);
                }
                else
                {
                    que[u].push_front(val);
                }
            }
            else if (cmd==2)
            {
                u=read();
                w=read();
                if (w)
                {
                    if (que[u].empty())
                    {
                        printf("-1
");
                        continue;
                    }

                        ans=que[u].back();
                        printf("%d
",ans);
                        que[u].pop_back();
                }
                else
                {
                    if (que[u].empty())
                    {
                        printf("-1
");
                        continue;
                    }
                        ans=que[u].front();
                        printf("%d
",ans);
                        que[u].pop_front();
                }
            }
            else {
                u=read();
                v=read();
                w=read();
                int temp;
                if (w==0){
                     it=que[u].end();
                     que[u].splice(it,que[u]);
                }else {
                     it=que[u].end();
                     que[v].reverse();
                     que[u].splice(it,que[v]);
                }
            }
        }
    }
    return 0;
}

 

以上是关于百度之星-1002-list应用的主要内容,如果未能解决你的问题,请参考以下文章

百度之星java大数+C++做法Strassen

百度之星初赛A hdu6108

百度之星2018 复赛 体验记

2014百度之星资格赛题解

百度之星初赛A hdu6113

百度之星资格赛