• POJ3187 虽然超时了,但是还得纪念一下


    Backward Digit Sums

    事情先是这样的:
    #include <iostream>

    using namespace std;

    int b[15];
    int OK=1;


    void sumpermutation(int* a,int n)
    {
        for(int i=n-1;i>0;i--)
        {

            for(int j=0;j<i;j++)
            {
                a[j]=a[j]+a[j+1];
            }
        }

    }

    void permutation(int* a,int *vis,int n,int cur,int m)
    {
       if(n==cur)
       {

            for(int i=0;i<n;i++)
                b=a;

            sumpermutation(b,n);
            if(b[0]==m)
            {
               if(OK)                                                  //不输出了,但还在DFS
               {
                   for(int i=0;i<n-1;i++)
                     cout<<a<<" ";
                     cout<<a[n-1];
                   cout<<endl;
                OK=0;
               }
               return ;
            }

       }
       else
       {
           for(int j=1;j<=n;j++)
           {
            if(vis[j]==0)
            {
               a[cur]=j;
               vis[j]=1;
               permutation(a,vis,n,cur+1,m);
               vis[j]=0;
            }
           }
       }
    }

    int main()
    {
        int a[10];
        int vis[11]={0};
        int m,n;
        cin>>n>>m;
        OK=1;
        permutation(a,vis,n,0,m);
        return 0;
    }
    结果:Time Limit Exceeded

    还是用STL试试吧:
    #include <iostream>
    #include <algorithm>

    using namespace std;

    int OK=1;


    void sumpermutation(int* a,int n)
    {
        for(int i=n-1;i>0;i--)
        {

            for(int j=0;j<i;j++)
            {
                a[j]=a[j]+a[j+1];
            }
        }

    }

    int main()
    {
        int a[11]={1,2,3,4,5,6,7,8,9,10};
        int b[10];
        int m,n;
        cin>>n>>m;
        OK=1;
        while(OK==1)
        {
            for(int i=0;i<n;i++)   b=a;
            sumpermutation(b,n);
            if(b[0]==m)
            {
                for(int j=0;j<n;j++)
                  cout<<a[j]<<" ";
                cout<<endl;
                OK=0;
            }
            else
            next_permutation(a,a+n);
        }
        return 0;
    }
    (果然ACCEPT了)





  • 相关阅读:
    交互设计必懂--开发有价值的用户体验
    优秀APP启动页的设计思维
    增加用户体验的细节--三个按钮的交互设计思维
    零基础掌握交互设计的重点笔记
    在失败的滴滴出行LOGO上谈APP设计
    是成为设计的主人?还是沦为设计的工具?
    大图标+不规则几何创造不同风格
    如何定义视觉设计规范?
    10条SKETCH的秘诀,为你提高工作的效率
    MVC过滤器详解
  • 原文地址:https://www.cnblogs.com/CKboss/p/3351121.html
Copyright © 2020-2023  润新知