zoukankan      html  css  js  c++  java
  • hdu1258 dfs 给一个指定的target数和一个数列,要求不重复选择其中的数使得和为target并打印,结果不可重复。

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 typedef unsigned int ui;
     4 typedef long long ll;
     5 typedef unsigned long long ull;
     6 #define pf printf
     7 #define prime1 1e9+7
     8 #define prime2 1e9+9
     9 #define scand(x) scanf("%llf",&x)
    10 #define f(i,a,b) for(int i=a;i<=b;i++)
    11 #define scan(a) scanf("%d",&a)
    12 #define dbg(args) cout<<#args<<":"<<args<<endl;
    13 #define pb(i) push_back(i)
    14 #define ppb(x) pop_back(x)
    15 #define maxn 100
    16 int n,m,t,cnt;
    17 int a[maxn],b[maxn];
    18 void dfs(int sum,int posa,int posb)
    19 {
    20     if(sum>m)return;
    21     if(sum==m)
    22     {
    23         cnt++;
    24         f(i,1,posb-1)
    25         {
    26             if(i!=1)
    27             {
    28                 pf("+%d",b[i]);
    29             }
    30             else pf("%d",b[1]);
    31         }
    32         pf("
    ");
    33         return;
    34     }
    35     f(i,posa,n)
    36     {
    37         b[posb]=a[i];
    38         dfs(sum+b[posb],i+1,posb+1);
    39         while(i+1<=n&&a[i]==a[i+1])i++;
    40     }
    41     return ;
    42 }
    43 int main()
    44 {
    45     std::ios::sync_with_stdio(false);
    46     //freopen("input.txt","r",stdin);
    47     //freopen("output.txt","w",stdout);
    48     while(scanf("%d %d",&m,&n)==2&&!(n==0&&m==0))
    49     {
    50         cnt=0;
    51         memset(a,0,sizeof(a));
    52         memset(b,0,sizeof(b));
    53         f(i,1,n)scan(a[i]);
    54         sort(a+1,a+n+1,greater<int>());
    55         pf("Sums of %d:
    ",m);
    56         dfs(0,1,1);
    57         if(!cnt)
    58         {
    59             pf("NONE
    ");
    60         }
    61     }
    62  } 
  • 相关阅读:
    关于HTTP以及TCP
    .NetCore表单提交文件
    C# Out变量
    .NET Core 网络数据采集 -- 使用AngleSharp做html解析
    C# 根据Url下载文件/获取文件流
    C# 模拟表单提交
    C# 获取Url路径的参数信息
    C# 采集页面数据
    .net core 3.1 设置可跨域
    C# json字符串转化成Dictionary
  • 原文地址:https://www.cnblogs.com/randy-lo/p/12384734.html
Copyright © 2011-2022 走看看