NYOJ-部分和问题(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
解题思路:
先从第一个数开始搜,并把sum初始化为0,然后分两种情况一种是把下一个数加上并标记,另一种是不把下一个数加上并标记
程序代码:
#include<stdio.h>
#include<string.h>
int dfs(int i,int sum);
int n,k,a[25],book[25];
int main()
{int i;while(scanf("%d%d",&n,&k)!=EOF){memset(book,0,sizeof(book));for(i=0;i<n;i++)scanf("%d",&a[i]);if(dfs(0,0)==1)printf("YES\n");elseprintf("NO\n");for(i=0;i<n;i++)if(book[i]==1)printf("%d ",a[i]);printf("\n");}return 0;
}
int dfs(int i,int sum)
{if(sum==k)return 1;if(sum>k)return 0;if(i==n)return 0;if(dfs(i+1,sum)==1){book[i]=0;return 1;}if(dfs(i+1,sum+a[i])==1){book[i]=1;return 1;}return 0;
}
NYOJ-部分和问题(dfs)相关推荐
- 部分和(dfs深搜回溯法)
问题描述 给定整数序列a1,a2,.,an,判断是否可以从中选出若干数,使它们的和恰好为k, 1<=n<=20 -10^8<=ai<=10^8 -10^8<=k<= ...
- 部分和问题 (dfs搜索 尺取)
部分和问题 给定整数a1, a2, a3, a4, .......... , an ,判断是否可以从中取出若干个数,使得他们的和恰好为k . 1 <= n <= 20 测试数 ...
- NYOJ 927 The partial sum problem 【DFS】+【剪枝】
The partial sum problem 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描写叙述 One day,Tom's girlfriend give him a ...
- NYOJ ~ 58 ~ 最小步数(DFS)
代码如下: #include<stdio.h> #include<iostream> #include<algorithm> #include<string. ...
- 小白算法练习 NYOJ 吝啬的国度 dfs+邻接表
吝啬的国度 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 在一个吝啬的国度里有N个城市,这N个城市间只有N-1条路把这个N个城市连接起来.现在,Tom在第S号城市,他有 ...
- nyoj 1237 最大岛屿(dfs)
描述 神秘的海洋,惊险的探险之路,打捞海底宝藏,激烈的海战,海盗劫富等等.加勒比海盗,你知道吧?杰克船长驾驶着自己的的战船黑珍珠1号要征服各个海岛的海盜,最后成为海盗王. 这是一个由海洋.岛屿和海盗组 ...
- C语言DFS(7)___单词拼接(NYoj 99)
单词拼接 描述 给你一些单词,请你判断能否把它们首尾串起来串成一串. 前一个单词的结尾应该与下一个单词的道字母相同. 如 aloha dog arachnid gopher tiger rat 可以拼 ...
- nyoj 1237 最大岛屿【dfs】
最大岛屿 时间限制: 1000 ms | 内存限制: 65535 KB 难度: 2 描述 神秘的海洋,惊险的探险之路,打捞海底宝藏,激烈的海战,海盗劫富等等.加勒比海盗,你知道吧?杰克船长驾驶着自 ...
- NYOJ 1249 物资调度(DFS+剪枝)
题目链接: http://acm.nyist.net/JudgeOnline/problem.php?pid=1249 描述 某地区发生了地震,灾区已经非常困难,灾民急需一些帐篷.衣物.食品和血浆等物 ...
- NYOJ 99单词拼接(有向图的欧拉(回)路)
1 /* 2 NYOJ 99单词拼接: 3 思路:欧拉回路或者欧拉路的搜索! 4 注意:是有向图的!不要当成无向图,否则在在搜索之前的判断中因为判断有无导致不必要的搜索,以致TLE! 5 有向图的欧拉 ...
最新文章
- 一台 Java 服务器可以跑多少个线程?
- DIOCP (一) DIOCP常见问题。
- 一堂课玩转rpm包的制作
- Hashtable TreeMap HashMap LinkedHashMap的区别
- vecm模型怎么写系数_用Stata搞实证之面板模型入门
- JAVA1.6实现动态编译加载运行
- html定位的所有属性,HTML CSS定位属性详解 嘿嘿嘿
- 《Go 语言程序设计》读书笔记(十)反射
- socket,与粘包
- 带时限作业排序(贪心)
- C/C++内存问题检查利器—Purify (二)
- Android 编译时出现r cannot be resolved to a variable
- 虎牙直播Js说书人弹幕
- macos10.14系统:MacOS Mojave
- 天猫精灵服务器修改密码,天猫精灵怎么解绑 天猫精灵解绑账号方法
- 4.live555mediaserver-第一次select
- linux man 命令 详解
- linux性能监控工具perf,Linux性能分析中常用的工具perf介绍
- 华为服务器L型滑道安装步骤讲解
- 折分查找法递归和非递归方式