题目描述:

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

思路:

  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. 我与Git的那些破事--代码管理实践

    1. Git是什么? 作为一名程序猿,我相信大家都或多或少接触过git--分布式版本控制软件. 有人说,它是目前世界上最先进的分布式版本控制系统,我想说,是否最先进不知道,但确实好用,实用. 作为一款 ...

  2. CSS的核心属性和浮动

    1.CSS属性组成和作用   属性:属性值 1)每个css样式都必须由两部分组成:选择符(Selector)和声明(Decleration) 注:声明又包括属性(Properyt)和属性值(Value ...

  3. 基于GMC/umat的复合材料宏细观渐近损伤分析(一)

    近期在开展基于GMC/umat的复合材料宏细观渐近损伤分析,一些技术细节分享如下: 1.理论基础 针对连续纤维增强复合材料,可以通过离散化获得如下的模型: (a)(b)(c) 图1 连续纤维增强复合材 ...

  4. OpenStack Identity API v3

    Table Of Contents OpenStack Identity API v3 What’s New in Version 3.7 What’s New in Version 3.6 What ...

  5. a标签点击触发 layer open 只显示背景解决

    问题:公司网站突然说有个查看信息的点击不好使了,有时候点击无反应,但是href执行了,有时候弹出只有背景,不显示内容.网上找了a标签的各种方法尝试后,均不能解决. 代码:类似如下,method()方法 ...

  6. Spring Boot2 系列教程 (十四) | 统一异常处理

    如题,今天介绍 SpringBoot 是如何统一处理全局异常的.SpringBoot 中的全局异常处理主要起作用的两个注解是 @ControllerAdvice 和 @ExceptionHandler ...

  7. Win10永久版低价购买及激活工具使用说明

    目录 按 发展历程 用户界面 激活工具 按 Windows 10是由美国微软公司开发的应用于计算机和平板电脑的操作系统,于2015年7月29日发布正式版. Windows 10操作系统在易用性和安全性 ...

  8. Gitlab应用——开发人员fetch分支,合并到master主分支申请

    创建开发仓库 打开git Bash,删除之前root管理创建的仓库目录 rm -rf  admin-test 选择项目进行拷贝 ​ 克隆 # git -c http.sslVerify=false c ...

  9. Android studio 报错Error:Internal error: (java.lang.ClassNotFoundException) com.google.wireless.android.sdk.stats.IntellijIndexingStats$Index

    Android studio运行make build报错 解决方法 在studio的File-->Settings-->Build, Execution, Deployment---> ...

  10. 开发环境Vue访问后端接口教程(前后端分离开发,端口不同下跨域访问)

    原理:开发环境下的跨域:在node.js上实现请求转发,vue前端通过axios请求到node.js上,node.js将请求转发到后端,反之.响应也是,先到node.js上,然后转发vue-cil项目 ...