zoukankan      html  css  js  c++  java
  • hdu 1258 果枫

    题意:中文题,省。

    ac代码:

    View Code
    #include<iostream>
    #include<string.h>
    #include<algorithm>
    using namespace std;
    
    int a[15];
    int use[15];
    
    int foat;//判断是否要输出“NONE”
    int t,n;
    int k;//use[]数组中使用
    
    
    bool cmp(int a,int b)
    {
        return a>b;
    }
    
    void dfs(int s,int step,int k)
    {
        if(t==s)
        {
            foat=1;
    
            for(int i=0;i<k-1;i++)
                cout<<a[use[i]]<<"+";
            cout<<a[use[k-1]]<<endl;
    
            return ;
    
        }
    
        for(int i=step;i<=n;i++)
        {
            if(a[i]!=a[i-1]||i==step)//保证只输出一个“3+1”,确保唯一性.
            {
                if(s+a[i]<=t)
                {
                    use[k]=i;
                    dfs(s+a[i],i+1,k+1);
                }
            }
        }
        return ;
    }
    
    
    
    
    
    int main()
    {
        while(cin>>t>>n)
        {
            if(t==0&&n==0)break;
    
            
            memset(a,0,sizeof(a));
            memset(use,0,sizeof(use));
            
            
            
            for(int i=1;i<=n;i++)
                cin>>a[i];
    
            sort(a+1,a+n+1,cmp);//从大到小排序
    
            printf("Sums of %d:\n",t);
    
            foat=0;
            k=0;
            dfs(0,1,0);
    
            if(foat==0)
                cout<<"NONE"<<endl;
    
        }
        return 0;
    }
    /*
    4 6 1 2 2 4 3 1
    5 5 4 3 2 1 1
    5 3 2 1 1
    400 12 50 50 50 50 50 50 25 25 25 25 25 25
    
    */
  • 相关阅读:
    解决vs code just-in-time报错的方法
    c++ 右值引用
    c++11 知识点
    ip路由名词介绍&琐碎知识
    第二次结对作业
    软工程第三次作业
    第二次作业
    软件工程第一次作业
    理解Object.defineProperty()
    concat()拷贝的局限性
  • 原文地址:https://www.cnblogs.com/zgfailmr/p/2680754.html
Copyright © 2011-2022 走看看