zoukankan      html  css  js  c++  java
  • Problem 1462 Books changing(模拟题STL数据结构)

    http://acm.whu.edu.cn/land/problem/detail?problem_id=1462

    #include<stdio.h>
    #include<list>
    #include<deque>//TLE
    //#incldue<fstream>
    #include<iostream>
    using namespace std;
    //list<int>la,lb,lc;
    //list<int>::reverse_iterator rit;
    //list<int>::iterator it;
    deque<int>la,lb,lc;
    deque<int>::reverse_iterator rit;
    deque<int>::iterator it;
    /*int pf(deque<int>a)
    {
        for(it=a.begin();it!=a.end();it++)
        printf(" %d*",*it);
        printf("\n");
    }*/
    int main()
    {
        int _case,n,x,y;
        int ii;
        scanf("%d",&_case);
        for(ii=1;ii<=_case;ii++)
        {
            la.clear();
            lb.clear();
            lc.clear();
            int jr=0;//odd or even
            scanf("%d %d %d",&n,&x,&y);
            for(int i=1; i<=n; i++) //initialize la
            la.push_back(i);
            while(lc.size()<n)
            {
    
                if(jr==0)
                {
                    if(la.size()>=x)
                    {
                        for(int i=0; i<x; i++)
                        {
                            lb.push_back(*(--la.end()) );
                            la.erase(--la.end());
                        }
    
                    }
                    else if(la.size()!=0)
                    {
                        for(int i=0; la.size(); i++)
                        {
                            lb.push_back(*(--la.end()));
                            la.erase(--la.end());
                        }
                    }
    
                    if(lb.size()>=y)
                    {
                        for(int i=0; i<y; i++)
                        {
                            lc.push_back(*(--lb.end()));
                            lb.erase(--lb.end());
                        }
                    }
                    else if(lb.size()!=0)
                    {
                        for(int i=0;lb.size();i++)
                        {
                            lc.push_back(*(--lb.end()));
                            lb.erase(--lb.end());
                        }
                    }
                    jr=1;
            //pf(la);
            //pf(lb);
            //pf(lc);printf("#######ji\n");
                }
                if(jr==1)
                {
                    if(la.size()>=x)
                    {
                        for(int i=0;i<x;i++)
                        {
                            lb.push_front(*la.begin());
                            la.erase(la.begin());
                        }
                    }
                    else if(la.size()!=0)
                    {
                        for(int i=0;la.size();i++)//i<la.size()
                        {
                            lb.push_front(*la.begin());
                            la.erase(la.begin());
                        }
                    }
                    if(lb.size()>=y)
                    {
                        for(int i=0;i<y;i++)
                        {
                            lc.push_back(*lb.begin());
                            lb.erase(lb.begin());
                        }
                    }
                    else if(lb.size()!=0)
                    {
                        for(int i=0;lb.size();i++)//i<
                        {
                            lc.push_back(*lb.begin());
                            lb.erase(lb.begin());
                        }
                    }
                    jr=0;
            //pf(la);
            //pf(lb);
            //pf(lc);printf("######ou\n");
                }
            }
            printf("Case %d:",ii);
            for(rit=lc.rbegin();rit!=lc.rend();rit++)
            printf(" %d",*rit);
            printf("\n");
        }
        return 0;
    }

     !刚开始用的是list(双向循环链表),TLE。

    后来分析才发现双向循环链表,根本就用不上。改为deque就AC了

    (仅仅的换了存储结构,其他代码偶不用改,STL够强大,通用性也好!!)!

  • 相关阅读:
    第10组 Alpha冲刺(4/6)
    第10组 Alpha冲刺(3/6)
    第10组 Alpha冲刺(2/6)
    第10组 Alpha冲刺(1/6)
    第10组 团队Git现场编程实战
    第10组 团队项目-需求分析报告
    团队项目-选题报告
    【软件工程】Alpha冲刺(4/6)
    【软件工程】Alpha冲刺(3/6)
    【软件工程】Alpha冲刺(2/6)
  • 原文地址:https://www.cnblogs.com/XDJjy/p/3053123.html
Copyright © 2011-2022 走看看