• hdu4727搜索+stl。轻微剪枝


    真心险啊。。最后3分钟a出来了。。回家再重新提交的时候发现出现re的错误。。换成g++错误消除。。so。。用stl的情况下最好是用g++。。否则你死都不知道是怎么死的。。还好人品。。最后提交的时候是g++。。不然啃爹的罚时类。。还有就是stl中间的vector容器的使用。。这里的题目跟网络赛的还有点不同。。数据大了1。。- -||

    #include<iostream>
    #include<vector>
    using namespace std;
    
    const int maxn=1020;
    vector<int>num;
    //int num[maxn];//
    int t;
    int no[maxn];//
    int times[maxn];//
    int done=0;//
    int locate(int number)
    {
        int i=0;
        for(i=0;i<=t-1;i++)
        {
            if(no[i]==-1)
            {
                no[i]=number;
                return i;
            }
            if(no[i]==number)
            {
                return i;
            }
        }
    }
    bool dfs()
    {
        //cout<<done<<endl;
        int t_d;
        t_d=t-done;
        int i;
        if(done==t)
        {
            return 1;
        }
        int tmp=t_d-5;
        for(i=t_d-2;i>=t_d-8;i--)
        {
            if(i<0)
            {
                break;
            }
            if(num[i]==num[t_d-1])
            {
                int save=num[i];
                num.erase(num.begin()+(t_d-1));
                num.erase(num.begin()+i);
                
                t_d-=2;
                done=done+2;
                if(dfs())
                {
                    return 1;
                }else
                {
                    num.insert(num.begin()+(t_d-1),save);
                    num.insert(num.begin()+i,save);
                    
                    done=done-2;
                }
            }
        }
        return 0;
    }
    int main()
    {
    
    /*
        int t;
        while(cin>>t)
        {
            vector<int>v;//
            v.clear();
            int i=0;
            int tt=t;
            for(i=0;i<=t-1;i++)
            {
                int num;//
                cin>>num;
                v.push_back(num);
            }
            bool tag;
            do
            {
                while(v[t-1]==-1&&t-1>=0)
                {
                    t--;
                }
                int tmp=t-5;
                for(i=t-2;i>=tmp;i--)
                {
                    if(i<0)
                    {
                        tag=0;
                        break;
                    }
                    if(v[i]==-1)
                    {
                        tmp--;
                        continue;
                    }
                    if(v[t-1]==v[i])
                    {
                        v[t-1]=-1;
                        v[i]=-1;
                        tag=1;
                        break;
                    }
                    tag=0;
                }
            }while(tag);
            bool no=0;
            for(i=0;i<=tt-1;i++)
            {
                if(v[i]!=-1)
                {
                    no=1;
                    break;
                }
            }
            if(no)
            {
                cout<<0<<endl;
            }else
            {
                cout<<1<<endl;
            }
        }
        */
        while(cin>>t)
        {
            memset(no,-1,sizeof(no));
            memset(times,0,sizeof(times));
            num.clear();
            done=0;
            int i=0;
            int tt=t;
            
            for(i=0;i<=t-1;i++)
            {
                int nnn;
                cin>>nnn;
                num.push_back(nnn);
                times[locate(num[i])]++;
            }/*
            bool isno=0;
            for(i=0;i<=t-1;i++)
            {
                //cout<<times[i]<<endl;
                if(times[i]%2)
                {
                    isno=1;
                    //break;
                }
            }
            if(isno)
            {
                cout<<0<<endl;
            }else*/
            {
                if(dfs())
                {
                    cout<<1<<endl;
                }else
                {
                    cout<<0<<endl;
                }
            }
        }
        return  0;
    }
    

      

  • 相关阅读:
    监控服务器的各种方法
    测试用例之翻页功能
    Python:基础知识
    一篇看懂Docker
    Web测试和app测试区别?
    用经济学的思维来看待安全测试的学习
    Moco测试知多少?
    「网易官方」极客战记(codecombat)攻略-沙漠-先有付出 才有回报-no-pain-no-gain
    「网易官方」极客战记(codecombat)攻略-沙漠-山谷的风与牛-canyon-of-storms
    「网易官方」极客战记(codecombat)攻略-沙漠-复查-double-cheek
  • 原文地址:https://www.cnblogs.com/cj695/p/2677078.html
Copyright © 2020-2023  润新知