博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
51Nod:1268 和为K的组合
阅读量:5889 次
发布时间:2019-06-19

本文共 708 字,大约阅读时间需要 2 分钟。

 
基准时间限制:1 秒 空间限制:131072 KB 分值: 20 
 收藏
 关注
给出N个正整数组成的数组A,求能否从中选出若干个,使他们的和为K。如果可以,输出:"Yes",否则输出"No"。
Input
第1行:2个数N, K, N为数组的长度, K为需要判断的和(2 <= N <= 20,1 <= K <= 10^9)第2 - N + 1行:每行1个数,对应数组的元素A[i] (1 <= A[i] <= 10^6)
Output
如果可以,输出:"Yes",否则输出"No"。
Input示例
5 13246810
Output示例
No
 
(题目提供者)
C++的运行时限为:1000 ms ,空间限制为:131072 KB 
时间复杂度:O(2^n)
#include
using namespace std;const int maxn=1e6;int a[maxn];int n,k;bool dfs(int i,int sum){ if(i==n) return sum==k; if(dfs(i+1,sum)) return true; if(dfs(i+1,sum+a[i])) return true; return false;}int main(){ cin>>n>>k; for(int i=0;i
>a[i]; if(dfs(0,0)) cout<<"YES\n"; else cout<<"NO\n"; return 0;}

转载于:https://www.cnblogs.com/Friends-A/p/9309045.html

你可能感兴趣的文章
JS中的this
查看>>
[20140117]疑似checkpoint堵塞数据库连接
查看>>
ibatis.net:第一天,什么是 mybatis.net ?
查看>>
人生, 不要在别扭的事上纠结
查看>>
C的面向对象编程
查看>>
日志服务器架构设计
查看>>
使用Unity开发Android的几种调试方法
查看>>
C++ 基础笔记(一)
查看>>
编译内核出错:invalid option `abi=aapcs-linux' 解决办法
查看>>
System.Func<>与System.Action<>
查看>>
奢侈品行业-新手专题-亿邦动力网
查看>>
研一,就这样过去了一大半
查看>>
html框架集 js刷新页面方法大全
查看>>
求两个数中的较大值max(a,b)。(不用if,>)
查看>>
[翻译] EnterTheMatrix
查看>>
asp.net开源CMS推荐
查看>>
2014第18周四
查看>>
awk当中使用外部变量
查看>>
我所思考的生活,致半年后的自己
查看>>
putty 中文乱码解决方法
查看>>