POJ_1564_dfs
题目描述:
每组数据给定一个大的数,和一系列降序的数值,要求列出不重复的数值中挑选的数的和为大数的方案,每一种方案里,每个数值最多只能使用一次。
思路:
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的更多相关文章
随机推荐
- 快速部署postfix邮件服务器
• 装包.配置.起服务– 默认的标准配置即可为本机提供发/收邮件服务– 若有必要,可扩大服务范围(邮件域) 前提:邮件服务器,必须为手工配置永久主机名虚拟机server0[root@server0 ~ ...
- 公子奇带你进入Java8流的世界(二)
在上一篇中我们带领大家简单的了解流的概念及使用场景,本节我们就来好好的介绍流的常见用法. 一.筛选和切片 对于一串流,我们有时需要取出我们需要的流中某些元素,主要是通过谓词筛选.看代码: 首先定义一个 ...
- 设置本地上网IP
在局域网中,我们经常需要根据网络连接环境来对本地连接的IP地址进行手动设置,那么如何对IP地址进行设置呢?下面小编就把教程介绍给大家. 1. 右击桌面“网上邻居”->选择“属性”,打开“网络共享 ...
- 【一起学源码-微服务】Ribbon源码五:Ribbon源码解读汇总篇~
前言 想说的话 [一起学源码-微服务-Ribbon]专栏到这里就已经全部结束了,共更新四篇文章. Ribbon比较小巧,这里是直接 读的spring cloud 内嵌封装的版本,里面的各种config ...
- Ant Design Pro路由传值
Ant Design Pro 路由传值 了解Ant Design Pro组件间通讯原理的小伙伴肯定都知道,两个页面之间可以通过Models进行传值,在以往的传值过程中,我都是直接将需要的值直接一股脑的 ...
- Web 3D是否需要WebAssembly?
大家好,本文讨论了Web 3D是否需要WebAssembly,结论是: 对于使用原生3D技术的程序员,需要: 对于使用Javascript语言的前端程序员,不需要,有其它方法可以达到接近WebAssd ...
- JVM之GC(一)
Java较C而言,最大的区别在于内存管理.JVM设有无用内存空间自动回收复用机制,也就是我们所说的GC. 之前说过,栈是为线程.为函数的执行分配内存的地方,用完即“销毁”,这里留待以后做深入探讨:堆是 ...
- Go Web 编程之 请求
概述 前面我们学习了处理器和处理器函数,如何编写和注册处理器.本文我们将学习如何从请求中获取信息. 请求的结构 通过前面的学习,我们知道处理器函数需要符合下面的签名: func (w http.Res ...
- Jquery图片上传功能整理
最近在做一个图片上传到服务器的功能,之前基本没有什么JS的经验,用的也是网上的插件.做了一个星期才把他弄好,现在做一下总结,方便以后查看. 用的插件是WebUploader,上面有很多例子,我找的例子 ...
- 常见基本数据结构——树,二叉树,二叉查找树,AVL树
常见数据结构——树 处理大量的数据时,链表的线性时间太慢了,不宜使用.在树的数据结构中,其大部分的运行时间平均为O(logN).并且通过对树结构的修改,我们能够保证它的最坏情形下上述的时间界. 树的定 ...