nyist oj 1058 部分和问题 (DFS搜索)
部分和问题
时间限制:1000 ms | 内存限制:65535 KB
难度:2
-
描写叙述
- 给定整数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
-
来源
source=%E7%BB%8F%E5%85%B8%E9%A2%98%E7%9B%AE" style="text-decoration:none; color:rgb(55,119,188)">经典题目
-
上传者
userid=TC_%E6%9D%A8%E9%97%AF%E4%BA%AE" style="text-decoration:none; color:rgb(55,119,188)">TC_杨闯亮
部分和问题
- 输入
- 首先,n和k,n表示数的个数。k表示数的和。
接着一行n个数。
(1<=n<=20,保证不超int范围) - 输出
- 假设和恰好能够为k,输出“YES”,并按输入顺序依次输出是由哪几个数的和组成。否则“NO”
- 例子输入
-
4 13
1 2 4 7 - 例子输出
-
YES
2 4 7 - 来源
source=%E7%BB%8F%E5%85%B8%E9%A2%98%E7%9B%AE" style="text-decoration:none; color:rgb(55,119,188)">经典题目
- 上传者
userid=TC_%E6%9D%A8%E9%97%AF%E4%BA%AE" style="text-decoration:none; color:rgb(55,119,188)">TC_杨闯亮
搜索简单题。递归的时候一定要注意结束的条件,就是临界条件,降低递归的开销;
#include <cstdio>
#include <cstring>
using namespace std;
int a[30],n,k,sum;
bool visit[30],flag;
void dfs(int pos)
{
if(flag==true)
return ;
if(sum>=k)
{
if(sum==k)
{
flag=true;
printf("YES\n");
for(int i=0;i<n;i++)
if(visit[i])//标记
printf("%d ",a[i]);
}
return;//这里就是递归结束的条件。在这里加一个结束条件,时间花销就降低了不少
}
for(int i=pos;i<n;i++)//搜索的过程
{
sum+=a[i];
visit[i]=1;
dfs(i+1);
sum-=a[i];
visit[i]=0;
}
}
int main()
{
int i;
while(scanf("%d%d",&n,&k)!=EOF)
{
for(i=0;i<n;i++)
scanf("%d",&a[i]);
memset(visit,0,sizeof(visit));
flag=false;
dfs(0);
if(!flag)
printf("NO\n");
}
return 0;
}
nyist oj 1058 部分和问题 (DFS搜索)的更多相关文章
- nyist oj 19 擅长排列的小明(dfs搜索+STL)
擅长排列的小明 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描写叙述 小明十分聪明.并且十分擅长排列计算.比方给小明一个数字5,他能立马给出1-5按字典序的全排列,假设你想 ...
- 『ACM C++』HDU杭电OJ | 1416 - Gizilch (DFS - 深度优先搜索入门)
从周三课开始总算轻松了点,下午能在宿舍研究点题目啥的打一打,还好,刚开学的课程还算跟得上,刚开学的这些课程也是复习以前学过的知识,下半学期也不敢太划水了,被各种人寄予厚望之后瑟瑟发抖,只能努力前行了~ ...
- hdu 1312:Red and Black(DFS搜索,入门题)
Red and Black Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Tot ...
- [ZOJ 1011] NTA (dfs搜索)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1011 题目大意:在一棵树上,给你起始状态,问你能否到达终止状态. ...
- HDU 1312:Red and Black(DFS搜索)
HDU 1312:Red and Black Time Limit:1000MS Memory Limit:30000KB 64bit IO Format:%I64d & ...
- [Swust OJ 799]--Superprime Rib(DFS)
题目链接:http://acm.swust.edu.cn/problem/799/ Time limit(ms): 1000 Memory limit(kb): 10000 Description ...
- hihocoder 1050 树中的最长路(动态规划,dfs搜索)
hihocoder 1050 树中的最长路(动态规划,dfs搜索) Description 上回说到,小Ho得到了一棵二叉树玩具,这个玩具是由小球和木棍连接起来的,而在拆拼它的过程中,小Ho发现他不仅 ...
- sdut 2152:Balloons(第一届山东省省赛原题,DFS搜索)
Balloons Time Limit: 1000MS Memory limit: 65536K 题目描述 Both Saya and Kudo like balloons. One day, the ...
- 蓝桥杯 历届试题 剪格子(dfs搜索)
历届试题 剪格子 时间限制:1.0s 内存限制:256.0MB 问题描述 如下图所示,3 x 3 的格子中填写了一些整数. +--*--+--+ |* || +--****--+ ||* | ** ...
随机推荐
- screen---管理会话
Screen是一款由GNU计划开发的用于命令行终端切换的自由软件.用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换.GNU Screen可以看作是窗口管理器的命令行界面版本.它提 ...
- Python 读写文件 小应用:生成随机的测验试卷文件
去年学习了python的读写文件部分,了解了python读写的常用模块os.shelve,今天准备把课后作业试着自己做一下 目标:1)生成35份试卷.每个试卷有50道选择题 2)为了防止有学生作弊,需 ...
- C# 从需要登录的网站上抓取数据
[转] C# 从需要登录的网站上抓取数据 背景:昨天一个学金融的同学让我帮她从一个网站上抓取数据,然后导出到excel,粗略看了下有1000+条记录,人工统计的话确实不可能.虽说不会,但作为一个学计算 ...
- PatentTips - Compare and exchange operation using sleep-wakeup mechanism
BACKGROUND Typically, a multithreaded processor or a multi-processor system is capable of processing ...
- jquery快速清除复选框、单选框的选中
$(":checked").attr("checked", "");
- 如何卸载visualsvn for visual studio
新入职的公司,电脑上的visual studio已经安装了visualsvn 尝试在tools-->extensions and updates中卸载 但是uninstall按钮是被禁用掉的 谷 ...
- jasperreport 追加新报表(2)
用ireport做好模版后,如果要新加一个打印页,如果是新手,直接修改模版应该是理想情况, 可是什么数据源 feild,parameter,var,subreport ,还有路径, 真的可以让一个人疯 ...
- 分享js中 pageY = clientY + document.body.scrollTop 之间的关系
//这里没有考虑兼容ie模式下 兼容一般主流浏览器 var $1 = document.getElementById('main') $1.onclick = function(e){ console ...
- Linux VNC客户端软件VNC Viewer | RealVNC
Linux很多时候是作为服务器操作系统,如果是桌面系统通常情况会远程管理linux服务器,很多时候通过VNC进行远程管理,这个时候就要在客户端安装VNC客户端软件,VNC Viewer | RealV ...
- 分享《Python 游戏编程快速上手(第3版)》高清中文版PDF+高清英文版PDF+源代码
通过编写一个个小巧.有趣的游戏来学习Python,通过实例来解释编程的原理的方式.14个游戏程序和示例,介绍了Python基础知识.数据类型.函数.流程控制.程序调试.流程图设计.字符串操作.列表和字 ...