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
-
来源
-
上传者
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
- 4 13
- 例子输出
-
- YES
- 2 4 7
- YES
- 来源
- 上传者
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 的格子中填写了一些整数. +--*--+--+ |* || +--****--+ ||* | ** ...
随机推荐
- css与jquery、图标字体
*)还能这样选择 header #search input[type="text"] *)按钮常用颜色:#008cBA(字母大小写没有区别) *)清除浮动后,text-align没 ...
- javascript与DOM节点的结合使用
文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标志语言的标准编程接口.在网页上,组织页面(或文档)的对象被组织在一个树形结构中,用来表示文档中对象 ...
- HDU 4406 GPA
GPA Time Limit: 1000ms Memory Limit: 32768KB This problem will be judged on HDU. Original ID: 440664 ...
- linux 下查看二进制文件
查看二进制有以下几种方法: 方法一:hexdump apt-get install libdata-hexdumper-perl 安装好之后就可以直接hexdump your_binary_file ...
- COGS——T2084. Asm.Def的基本算法
http://cogs.pro/cogs/problem/problem.php?pid=2084 ★☆ 输入文件:asm_algo.in 输出文件:asm_algo.out 简单对比时间 ...
- 国庆 day 6 上午
1. 角谷猜想(kakutani.pas/c/cpp)(kakutani.in/out)时间限制:1s/空间限制:256M[题目描述] 某个名字末尾是 654321 的小 A 同学是个大家眼中公认的学 ...
- BZOJ 2982 combination Lucas定理
题目大意:发上来就过不了审核了--总之大意就是求C(n,m) mod 10007 m,n∈[1,2*10^8] 卢卡斯定理:C(n,m)=C(n%p,m%p)*C(n/p,m/p) mod p 要求p ...
- 在spring-mybatis.xml 中配置pagehelper
maven导包:<dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</ ...
- 用efibootmgr管理UEFI启动项,添加丢失的启动项
UEFI用来替代传统BIOS引导操作系统,学会修改UEFI启动项也变得十分重要,UEFI全称为:“统一的可扩展固件接口”(Unified Extensible Firmware Interface), ...
- Flex之文件目录浏览器实例
Flex之文件目录浏览器实例 Flex的AIR项目 <?xml version="1.0" encoding="utf-8"?> <mx:Wi ...