题目描述:

  每组数据给定一个大的数,和一系列降序的数值,要求列出不重复的数值中挑选的数的和为大数的方案,每一种方案里,每个数值最多只能使用一次。

思路:

  dfs基础题,每次记录大数和当前总和的差值,当前位置,以及当前使用的数的数量,将每一个使用的数放进ans数组中。由于是dfs,每一种情况使用的数字放入ans中可以将上一种情况覆盖,所以不需要考虑初始化。

  要注意的是,方案不能重复,所以每一层dfs中,下一个数值的选择必须是不重复的。

#include<cstdio>
#include<iostream>
using namespace std; int t,n,x[],flag,ans[]; void dfs(int un_sum,int where,int num)
{
if(!un_sum)
{
cout << ans[];
for(int i = ;i < num;i++) cout << '+' << ans[i];
cout << endl;
flag = ;
return;
}
else if(where > n)
{
return;
}
ans[num] = x[where];
dfs(un_sum-x[where],where+,num+);
for(int i = where+;i <= n;i++)
{
if(x[i] != x[i-] && un_sum >= x[i])
{
ans[num] = x[i];
dfs(un_sum-x[i],i+,num+);
}
}
}
int main()
{
while(cin >> t >> n && t && n)
{
flag = ;
for(int i =;i <= n;i++) cin >> x[i];
cout << "Sums of " << t << ':' << endl;
for(int i = ;i <= n;i++)
{
if(t >= x[i])
{
dfs(t,i,);
break;
}
}
if(flag) cout << "NONE" << endl;
}
return ;
}

POJ_1564_dfs的更多相关文章

随机推荐

  1. 快速部署postfix邮件服务器

    • 装包.配置.起服务– 默认的标准配置即可为本机提供发/收邮件服务– 若有必要,可扩大服务范围(邮件域) 前提:邮件服务器,必须为手工配置永久主机名虚拟机server0[root@server0 ~ ...

  2. 公子奇带你进入Java8流的世界(二)

    在上一篇中我们带领大家简单的了解流的概念及使用场景,本节我们就来好好的介绍流的常见用法. 一.筛选和切片 对于一串流,我们有时需要取出我们需要的流中某些元素,主要是通过谓词筛选.看代码: 首先定义一个 ...

  3. 设置本地上网IP

    在局域网中,我们经常需要根据网络连接环境来对本地连接的IP地址进行手动设置,那么如何对IP地址进行设置呢?下面小编就把教程介绍给大家. 1. 右击桌面“网上邻居”->选择“属性”,打开“网络共享 ...

  4. 【一起学源码-微服务】Ribbon源码五:Ribbon源码解读汇总篇~

    前言 想说的话 [一起学源码-微服务-Ribbon]专栏到这里就已经全部结束了,共更新四篇文章. Ribbon比较小巧,这里是直接 读的spring cloud 内嵌封装的版本,里面的各种config ...

  5. Ant Design Pro路由传值

    Ant Design Pro 路由传值 了解Ant Design Pro组件间通讯原理的小伙伴肯定都知道,两个页面之间可以通过Models进行传值,在以往的传值过程中,我都是直接将需要的值直接一股脑的 ...

  6. Web 3D是否需要WebAssembly?

    大家好,本文讨论了Web 3D是否需要WebAssembly,结论是: 对于使用原生3D技术的程序员,需要: 对于使用Javascript语言的前端程序员,不需要,有其它方法可以达到接近WebAssd ...

  7. JVM之GC(一)

    Java较C而言,最大的区别在于内存管理.JVM设有无用内存空间自动回收复用机制,也就是我们所说的GC. 之前说过,栈是为线程.为函数的执行分配内存的地方,用完即“销毁”,这里留待以后做深入探讨:堆是 ...

  8. Go Web 编程之 请求

    概述 前面我们学习了处理器和处理器函数,如何编写和注册处理器.本文我们将学习如何从请求中获取信息. 请求的结构 通过前面的学习,我们知道处理器函数需要符合下面的签名: func (w http.Res ...

  9. Jquery图片上传功能整理

    最近在做一个图片上传到服务器的功能,之前基本没有什么JS的经验,用的也是网上的插件.做了一个星期才把他弄好,现在做一下总结,方便以后查看. 用的插件是WebUploader,上面有很多例子,我找的例子 ...

  10. 常见基本数据结构——树,二叉树,二叉查找树,AVL树

    常见数据结构——树 处理大量的数据时,链表的线性时间太慢了,不宜使用.在树的数据结构中,其大部分的运行时间平均为O(logN).并且通过对树结构的修改,我们能够保证它的最坏情形下上述的时间界. 树的定 ...