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的更多相关文章
随机推荐
- .net core3.1项目在centos7.6上部署经验
0x00环境搭建 1)使用PuTTY远程登录你的centos 2)yum -y update 更新系统 3)安装宝塔面板: yum install -y wget && wget -O ...
- mysql oracle sql获取树 父级 子级 及自己
select * from ( select t.*,d.TABLE_NAME,d.QUERY_SQL,d.data_control_col,d.id table_id,d.where_sql fro ...
- [Debug]IOS微信浏览器不支持form表单的target=_blank
测试代码如下 <?php echo '<meta name="viewport" content="width=device-width,minimum-sc ...
- python的break、continue、pass
break break可以用来立即退出循环语句(包括else)continue continue可以用来跳过当次循环注意:break和continue都是只对离他最近的循环起作用 pass pass是 ...
- CountDownLatch,CyclicBarrier,Semaphore用法
1.让一些线程阻塞直到另一些线程完成一系列操作后才被唤醒. 2.CountDownLatch主要有两个方法,当一个或多个线程调用await方法时,调用线程会被阻塞.其它线程调用countDown方法会 ...
- 多级反向代理java获取真实IP地址
public static String getIpAddress(HttpServletRequest request){ String ip = request.getHeader("x ...
- octave在win上和linux上配置syms
octave是类似matlab的一个科学计算工具集.需要用到积分.微分.求导的时候,需要连接python3的sympy. windows上先安装好python3,然后pip安装Sympy.具体过程: ...
- 如梦令编程语言发布 (RML)
如梦令编程语言是在Rebol语言核心语法的基础上,做了一些自以为是的修改而来.谨以此为Rebol语法的传承,略尽绵薄之力. 基本概念 如梦令语言分属Lisp语系,代码本身是一个层层嵌套的Token列表 ...
- 双指针,BFS与图论(一)
(一)双指针 1.日志统计 小明维护着一个程序员论坛.现在他收集了一份”点赞”日志,日志共有 N 行. 其中每一行的格式是: ts id 表示在 ts 时刻编号 id 的帖子收到一个”赞”. 现在小明 ...
- 团队第一次作业(By七个小矮人)
一.团队简介 1.团队名称:七个小矮人 2.团队成员列表 201731024137 马驰(队长) 201731021227 于丁 201731024114 杨汶桐 201731024125 李朋珂 2 ...