zoukankan      html  css  js  c++  java
  • hdu 1258

    一道搜索题,关键是不能有重复的出现。。。

     1 #include<iostream>
     2 #include<cstdlib>
     3 using namespace std;
     4 
     5 int t,n,flag;
     6 int num[14],save[14];
     7 
     8 int cmp(const void *a,const void *b){
     9     return (*(int *)a)>(*(int *)b);
    10 }
    11 
    12 void dfs(int i,int sum,int count){
    13     if(sum>t)
    14         return ;
    15     if(sum==t){
    16         for(int j=0;j<count-1;j++){
    17             printf("%d+",save[j]);
    18         }
    19         printf("%d\n",save[count-1]);
    20         flag=1;
    21         return;
    22     }
    23     int tag=-1;
    24     for(int k=i;k<n;k++){
    25         if(num[k]!=tag){
    26             save[count]=num[k];
    27             sum+=num[k]; //每次的和
    28             tag=num[k];  //保留当前的数,能避免重复
    29             dfs(k+1,sum,count+1);
    30             sum-=num[k];
    31         }
    32     }
    33 }
    34 
    35 int main(){
    36     while(scanf("%d%d",&t,&n)!=EOF){
    37         if(n==0)break;
    38         for(int i=0;i<n;i++){
    39             scanf("%d",&num[i]);
    40         }
    41         qsort(num,0,sizeof(num[0]),cmp);
    42         printf("Sums of %d:\n",t);
    43         dfs(0,0,0);
    44         if(!flag){
    45             printf("NONE\n");
    46         }
    47         flag=0;
    48     }
    49     return 0;
    50 }
  • 相关阅读:
    set bootarges
    UI 中的 结构体 字符串的 初始化
    putchar 代替printf
    石家庄 工作
    What's the value of i++ + i++?
    printf 打印 指定长度 字符串
    UI 点滴 积累
    static 关键字
    sdk
    隐式类型转换
  • 原文地址:https://www.cnblogs.com/wally/p/2878865.html
Copyright © 2011-2022 走看看