zoukankan      html  css  js  c++  java
  • hdu 1258 从n个数中找和为t的组合 (DFS)

    题意:首先给你一个t,然后是n,后面输入n个数,然后让你求的是n个数中和为t的序列总共有多少种,把他们按从左到右的顺序输出来。

    Sample Input
    4 6 4 3 2 2 1 1
    5 3 2 1 1
    400 12 50 50 50 50 50 50 25 25 25 25 25 25
    0 0

    Sample Output
    Sums of 4:
    4
    3+1
    2+2
    2+1+1
    Sums of 5:
    NONE
    Sums of 400:
    50+50+50+50+50+50+25+25+25+25
    50+50+50+50+50+25+25+25+25+25+25

     1 # include <cstdio>
     2 # include <cmath>
     3 # include <iostream>
     4 # include <cstring>
     5 # include <algorithm>
     6 using namespace std ;
     7 
     8 int a[20] ;
     9 int save[20] ;
    10 int  n , t ;
    11 bool flag ;
    12 
    13 bool cmp(const int &x , const int &y)
    14 {
    15     return x > y ;
    16 }
    17 
    18 void dfs(int count , int L , int pos)
    19 {
    20     if (L > t)
    21         return  ;
    22     if (L == t)
    23     {
    24         for(int j=0;j<count-1;j++)
    25         {
    26             printf("%d+",save[j]);
    27         }
    28         printf("%d
    ",save[count-1]);
    29         flag = 1 ;
    30         return  ;
    31     }
    32     for (int i = pos ; i < n ; i++)
    33     {
    34         save[count] = a[i] ;
    35         dfs (count+1,L+a[i] , i+1) ;
    36         while (a[i] == a[i+1])
    37             i++ ;
    38     }
    39 
    40 }
    41 
    42 int main()
    43 {
    44     //freopen("in.txt","r",stdin) ;
    45 
    46     while (scanf("%d %d" , &t , &n) != EOF)
    47     {
    48         if (t == 0 && n == 0)
    49             break ;
    50         int i ;
    51         for (i = 0 ; i < n ; i++)
    52         {
    53             scanf("%d" , &a[i]) ;
    54         }
    55         sort(a,a+n,cmp) ;
    56         flag = 0 ;
    57         printf("Sums of %d:
    ",t);
    58         dfs(0,0,0) ;
    59         if (flag == 0)
    60         {
    61             printf("NONE
    ") ;
    62         }
    63     }
    64 
    65     return 0 ;
    66 
    67 }
    View Code
  • 相关阅读:
    通过ida dump Uinity3D的加密dll
    apk文件签名绕过
    防止apk反编译的技术分析浅谈--内存修改器篇
    OD脚本指令集
    RHEL6.4 xclock安装小记
    PyCharm配置SFTP远程调试Django应用
    git常用命令
    centos7下yum安装mysql
    慢吞吞的pip切换源
    Linux常用软件安装与配置——目录
  • 原文地址:https://www.cnblogs.com/mengchunchen/p/4507883.html
Copyright © 2011-2022 走看看