部分和问题 南阳acm1058(递归+dfs)
部分和问题
- 描述
- 给定整数a1、a2、.......an,判断是否可以从中选出若干数,使它们的和恰好为K。
- 输入
- 首先,n和k,n表示数的个数,k表示数的和。
接着一行n个数。
(1<=n<=20,保证不超int范围) - 输出
- 如果和恰好可以为k,输出“YES”,并按输入顺序依次输出是由哪几个数的和组成,否则“NO”
- 样例输入
-
4 13
1 2 4 7 - 样例输出
-
YES
2 4 7 - 来源
- 经典题目
- 上传者
- TC_杨闯亮
- 简单的搜索问题,要注意它有多组测试数据
-
#include<stdio.h>
#include<string.h>
int a[],b[];
int n,k,flag;
void dfs(int x,int sum)
{
int i;
if(sum > k) return; //此时不需要再相加了,已经超了
if(x==n)
{
if(sum == k)
{
flag = ;
printf("YES\n");
for(i=; i<n; i++)
{
if(b[i]) printf("%d ",a[i]);
}
printf("\n");
return;
}
return;
}
b[x] = ;
dfs(x+,sum); //sum不需要+a[x]时,b[x] = 0
b[x] = ;
dfs(x+,sum+a[x]); //sum+a[x]时,b[x] = 1
}
int main()
{
int i;
while(scanf("%d%d",&n,&k)!=EOF)
{
flag = ;
memset(b,,sizeof(b));
for(i=; i<n; i++)
scanf("%d",&a[i]);
dfs(,);
if(!flag)
printf("NO\n");
}
return ;
}
部分和问题 南阳acm1058(递归+dfs)的更多相关文章
- POJ 1780 Code(欧拉回路+非递归dfs)
http://poj.org/problem?id=1780 题意:有个保险箱子是n位数字编码,当正确输入最后一位编码后就会打开(即输入任意多的数字只有最后n位数字有效)……要选择一个好的数字序列,最 ...
- 剑指offer:对称的二叉树(镜像,递归,非递归DFS栈+BFS队列)
1. 题目描述 /** 请实现一个函数,用来判断一颗二叉树是不是对称的. 注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的 */ 2. 递归 思路: /** 1.只要pRoot.left和 ...
- 递归 dfs 记忆化搜索 动态规划
今天做洛谷P1434 [SHOI2002]滑雪 的时候仔细想了想记忆化搜索 现在总结一下 为了描述问题的某一状态,必须用到该状态的上一状态,而描述上一状态,又必须用到上一状态的上一状态……这种用自已来 ...
- (二叉树 递归 DFS) leetcode 100. Same Tree
Given two binary trees, write a function to check if they are the same or not. Two binary trees are ...
- B. Nirvana Codeforces Round #549 (Div. 2) (递归dfs)
---恢复内容开始--- Kurt reaches nirvana when he finds the product of all the digits of some positive integ ...
- 幸运三角形 南阳acm491(dfs)
幸运三角形 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 话说有这么一个图形,只有两种符号组成(‘+’或者‘-’),图形的最上层有n个符号,往下个数依次减一,形成倒 ...
- HDU1016【简单递归.DFS】
题意:一个环,相邻相加是素数. 思路: 直接深搜就好了.. output limit exceed 了好几发... 因为那个while里面的scanf前面的"~" 后来搜了outp ...
- HDU 5544 Ba Gua Zhen ( 2015 CCPC 南阳 C、DFS+时间戳搜独立回路、线性基 )
题目链接 题意 : 给出一副简单图.要你找出一个回路.使得其路径上边权的异或和最大 分析 : 类似的题有 BZOJ 2115 对于这种异或最长路的题目(走过的边可以重复走) 答案必定是由一条简单路径( ...
- 深度优先搜索(DFS)递归形式改为非递归形式
DFS将递归改为非递归这个方法的需求来自于一道三维积木组合的题目,还在苦苦调试中,暂且不提. 普通的认识对于递归向非递归的转化无非是使用栈,但是结合到深度搜索如何将栈很好利用,如何很好保存现场,都不是 ...
随机推荐
- maven课程 项目管理利器-maven 3-6 maven中Pom.xml的解析 3星
本节主要讲了pom中常用的标签 1 常用的标签 2 非常用的标签 1 常用的标签 a 坐标 groupid 反写公司网址+项目名 artifactId 项目名+模块名 version 版本号:3位版本 ...
- git 推送代码到远程端
git init git add . git commit -m "first commit" git remote add origin "地址" git p ...
- Linux 学习 二, 安装JDK
我是利用在window环境下载好JDK,然后传到VMware中linux中 下载JDK http://www.oracle.com/technetwork/java/javase/downloads/ ...
- SpringCloud的学习记录(1)
最近一段时间重新学习一边SpringCloud(有半年不用了),这里简单记录一下. 我用的是IntelliJ IDEA开发工具, SpringBoot的版本是2.1.3.RELEASE. 1. 构建M ...
- Struts2_总结
还未学习的内容,如果到时候要用到,再去学.1.Lamda 表达式(很复杂,很少用)2.验证框架(默认验证方法 validation.方法开始前验证.开始后验证)3.UI标签(用的不多)4.类型转换中的 ...
- PostgresQL中的NUlls first/last功能
Nulls first/last功能简介Nulls first/last功能主要用于order by排序子句中,影响空值Null在排序结果中的位置.简单来说,Nulls first表示Null值在排序 ...
- ubuntu linux断点续传下载工具 uGet 的安装
网址 http://ugetdm.com/downloads-ubuntu 使用命令行安装 sudo add-apt-repository ppa:plushuang-tw/uget-stable s ...
- April 22 2017 Week 16 Saturday
Fear is an essential part of our survival, it keeps us alert. 恐惧是生存的重要部分,它让我们保持警惕. Fear and pain are ...
- eplise中运行提示 A fatal error has been detected by the java runtime environment
今天一同事出现运行项目时,提示 A fatal error has been detected by the java runtime environment,具体表现是使用我们框架,不能正常的打印日 ...
- 2017.9.15 HTML学习总结---表格table
2.7 表格<table>的属性: 属性 用途 width 表格宽度 height 表格高度 align 表格水平对齐 border ...