nyoj 1058部分和问题(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#include<cstdio> 
 #include<cstring>
 bool vis[], ok;
 int a[];
 int n, k;
 void dfs(int sum, int cur)
 {
 if(sum==k)
 {
 if(!ok)
 {
 ok = ;
 printf("YES\n");
 }
 for(int i=; i<n; i++)
 if(vis[i])
 printf("%d ", a[i]);
 printf("\n");
 return;
 }
 for(int i=cur; i<n; i++)
 {
 sum+=a[i];
 vis[i] = ;
 dfs(sum, i+);
 vis[i] = ;
 sum-=a[i];
 }
 } int main()
 {
 while(scanf("%d%d", &n, &k)!=EOF)
 {
 for(int i=; i<n; i++)
 scanf("%d", &a[i]);
 memset(vis, , sizeof(vis));
 ok = ;
 dfs(, );
 if(ok==)
 printf("No\n");
 }
 return ;
 }此题有更优的解法-------01背包。 
 
nyoj 1058部分和问题(DFS)的更多相关文章
- NYOJ 1058 部分和问题 【DFS】
		部分和问题 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描写叙述 给定整数a1.a2........an,推断能否够从中选出若干数.使它们的和恰好为K. 输入 首先,n和k ... 
- NYOJ 1058 部分和问题
		部分和问题 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 给定整数a1.a2........an,判断是否可以从中选出若干数,使它们的和恰好为K. 输入 首先, ... 
- NYOJ之题目1058部分和问题
		---------------------------------------- 简单搜索+剪枝 因为考虑到可能会有多个解,所以是将中间过程保存最后才一起打印出来的 AC代码: 1: 2: impor ... 
- nyist oj 1058 部分和问题 (DFS搜索)
		部分和问题 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描写叙述 给定整数a1.a2........an.推断能否够从中选出若干数,使它们的和恰好为K. 输入 首先,n和k ... 
- 部分和问题(dfs)
		部分和问题 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 给定整数a1.a2........an,判断是否可以从中选出若干数,使它们的和恰好为K. ... 
- nyoj 1282 部分和问题
		部分和问题(入门题) 时间限制:1000 ms | 内存限制:65535 KB 难度:0 描述 给你n个数(a1,a2,a3.......an) ,是否存在某一些数字加起来等于k,有就输出 & ... 
- NYOJ 587 blockhouses 【DFS】
		blockhouses 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描写叙述 Suppose that we have a square city with straigh ... 
- NYOJ 27.水池数目-DFS求连通块
		水池数目 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 南阳理工学院校园里有一些小河和一些湖泊,现在,我们把它们通一看成水池,假设有一张我们学校的某处的地图,这个地 ... 
- NYOJ 722 数独 【DFS】+【预处理】
		数独 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描写叙述 数独是一种运用纸.笔进行演算的逻辑游戏.玩家须要依据9×9盘面上的已知数字,推理出全部剩余空格的数字,并满足每一 ... 
随机推荐
- Linux系统查看系统是32位还是64位方法总结【转】
			转自:http://www.cnblogs.com/kerrycode/p/3785768.html 这篇博客是总结.归纳查看Linux系统是32位还是64位的一些方法,很多内容来自网上网友的博客.本 ... 
- 深入研究java.lang.Runtime类【转】
			转自:http://blog.csdn.net/lastsweetop/article/details/3961911 目录(?)[-] javalang 类 Runtime getRuntime e ... 
- yii2 批量插入or更新
			$sql1 = 'insert into business_ip (gid, name, area, belongName, belongArea, destIPv4, created, update ... 
- 20145227 《Java程序设计》第6周学习总结
			20145227 <Java程序设计>第6周学习总结 教材学习内容总结 第十章 输入/输出 10.1 InputStream与OutputStream 1.串流设计的概念 Java将输入/ ... 
- android中广告轮播图总结
			功能点:无限轮播.指示点跟随.点击响应.实现思路: 1.指示点跟随,指示点通过代码动态添加,数量由图片数量决定. 在viewpager的页面改变监听中,设置点的状态选择器enable,当前页时,set ... 
- python :eval将字符串转换成字典
			#将字符串打印成字典 b=''' {'record': {'weight':20,'server':'100.1.7.9','maxconn':50},'backend': 'www.oldboy.o ... 
- Android 坐标与宽高研究getLeft() getTop() getRight()和getBottom()
			把view看做一个矩形,分别表示的是一个view的左边,上边,右边,下边距离他的父组件的距离. getRight() =getLeft() + getWidth() getBottom()= getT ... 
- css不同浏览器兼容性调试 --- 转自: [http://wo.115.com/?ct=detail&id=31733&bid=1018841]
			css不同浏览器兼容性调试 IE6.0,IE7.0与Firefox的CSS兼容性问题1.DOCTYPE 影响 CSS 处理 2.FF: div 设置 margin-left, margin-right ... 
- 减少C++代码编译时间的方法
			c++ 的代码包含头文件和实现文件两部分, 头文件一般是提供给别人(也叫客户)使用的, 但是一旦头文件发生改变,不管多小的变化,所有引用他的文件就必须重新编译,编译就要花时间,假如你做的工程比较大(比 ... 
- java下载安装,环境变量,hello world
			1.Java下载安装 网址:http://java.sun.com/javase/downloads/index.jsp win7 64位选择jdk-8u11-windows-x64.exe. 2.环 ... 
