题目

给出N个正整数组成的数组A,求能否从中选出若干个,使他们的和为K。如果可以,输出:"Yes",否则输出"No"。

输入

第1行:2个数N, K, N为数组的长度, K为需要判断的和(2 <= N <= 20,1 <= K <= 10^9)
第2 - N + 1行:每行1个数,对应数组的元素A[i] (1 <= A[i] <= 10^6)

输出

如果可以,输出:"Yes",否则输出"No"。

输入样例

5 13
2
4
6
8
10

输出样例

No

思路:dfs

普通的深搜加 vis 标记会超时,因此可以对搜索顺序进行优化,每次 dfs 在当前结点的下一个结点开始搜索即可

源程序

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<string>
#include<cstring>
#include<cmath>
#include<ctime>
#include<algorithm>
#include<utility>
#include<stack>
#include<queue>
#include<vector>
#include<set>
#include<map>
#include<bitset>
#define EPS 1e-9
#define PI acos(-1.0)
#define INF 0x3f3f3f3f
#define LL long long
const int MOD = 1E9+7;
const int N = 1000000+5;
const int dx[] = {-1,1,0,0,-1,-1,1,1};
const int dy[] = {0,0,-1,1,-1,1,-1,1};
using namespace std;
int n,k;
int a[N];
bool flag;
void dfs(int sum,int step) {if(flag)return;if(sum==0) {flag=true;return;}if(step<=n){for(int i=step;i<=n;i++){sum-=a[i];dfs(sum,i+1);sum+=a[i];}}
}
int main() {scanf("%d%d",&n,&k);for(int i=1; i<=n; i++)scanf("%d",&a[i]);for(int i=1;i<=n;i++)dfs(k,i);if(flag)printf("Yes\n");elseprintf("No\n");return 0;
}

和为 k 的组合(51Nod-1268)相关推荐

  1. 51nod 1268 和为K的组合 dfs

    题目: 1268 和为K的组合 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 给出N个正整数组成的数组A,求能否从中选出若干个,使他们的和为K.如果可以,输出:& ...

  2. 51Nod:1268 和为K的组合

    1268 和为K的组合  基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题  收藏  关注 给出N个正整数组成的数组A,求能否从中选出若干个,使他们的和为K.如果可以 ...

  3. 欧奈尔4个经典形态_股票K线图基础知识:图解4大经典K线组合形态

    下面为大家分享包括股市导图总纲.k线.均线基础.切线.指标分析.选股.板块轮动以及股市中的各种骗局,希望能给大家来个股票知识大梳理,更多更具体的投资干货知识分享,后面将会为大家一步步分享! (注意:以 ...

  4. 一分钟学会看k线图_1分钟学会看K线请笑纳70种经典K线组合形态,绝对干货,轻松低买高卖!...

    (本文由公众号越声攻略(yslc688)整理,仅供参考,不构成操作建议.如自行操作,注意仓位控制和风险自负.) K线是最真实的盘面语言,不同的形态有不同的含义,是广大操盘手必备的交易决策工具,也是广大 ...

  5. 绘制自己组合的k线图_短线投资者必备的四种双K线组合抄底技巧,次次选中黑马股,精准率超高...

    (本文由公众号越声投研(yslcwh)整理,仅供参考,不构成操作建议.如自行操作,注意仓位控制和风险自负.) 股市里有一句话叫做:"新手死于追高,老手死于抄底",讲的是股市里大多数 ...

  6. 10种K线组合给出买进信号

    底部出现跳空或中长阳,强势买进,一拨升势将起. 出现在底部或调整末期,方向向上,可放心买进.如处在高位,要观察成交量,若放量可以买进,若缩量则观望为宜. 股票相关文章推荐:★ ※转型个股赚钱机会最大- ...

  7. unity怎么根据坐标绘制线_怎么根据阴线和阳线判断股票将稳步上涨或者下跌不止,K线组合...

    继续学习股票K线组合知识,只有不断学习进步才能有所收益. K线组合稳步上涨 我们先来了解一下稳步上涨的图形,如下图所示: 稳步上涨 K线组合稳步上涨的特征 在上涨的过程中,众多阳线夹着较少的小阴线,股 ...

  8. 通达信自动提示穿头破脚K线组合形态(含指标公式源码)

    内容提要:本文主要介绍了穿头破脚K线组合形态的概念以及穿头破脚通达信指标公式的两种写法. 阳康归来,今天给大家介绍一个比较应景的K线组合形态--穿头破脚. 一.穿头破脚介绍 穿头破脚K线组合形态由两根 ...

  9. K线类型识别—双K线之买入型双日K线组合

    买入型双日K线组合 一.曙光初现 曙光初现由两根K线组成,第一根K线是实体较大的阴线,第二根K线跳空低开,开盘价远低于前一天的收盘价,但是不久后在买盘的推动下优势价格回升并且收盘价超过了第一根K线实体 ...

  10. 通达信自动提示启明星、黄昏星K线组合形态(含指标公式源码)

    内容提要:本文主要介绍了启明星(早晨之星)和黄昏星(黄昏之星)K线组合形态的概念以及启明星和黄昏星通达信指标公式的写法,并设置K线颜色,添加文字标记. 一.启明星(也称早晨之星) 启明星K线组合形态是 ...

最新文章

  1. WP老杨解迷:可知评论系统还能勾搭用户呢
  2. 如何用javac 和java 编译运行整个Java工程
  3. 销售订单定价-客户取值
  4. pycharm 如何使用git链接到github实现代码提交
  5. 2.Redis数据库(搭建redis主从的必要性)以及主从搭建(Windows为例)
  6. 容器+AOP实现动态部署(四)
  7. 《大道至简》第二篇读后感
  8. 学习MySQL / MariaDB初学者 - 第1部分
  9. 常用JS积累之获取节点高度(基于浏览器)
  10. 同学,你要的SpringBoot多图片上传回显功能已经实现了,赶紧收藏吃灰~
  11. BZOJ 1015: [JSOI2008]星球大战starwar 并查集
  12. OrCAD设计原理图
  13. Chrome查看HTTP版本
  14. 微信服务通知消息找回_微信鲜为人知的4个冷知识,小技巧却有大用处
  15. 苹果安装app的另一种方式(通过itms-services协议,不通过AppStore,直接安装IOS应用程序)
  16. 【Javascript】length属性
  17. LeGO-LOAM 系列(1): LeGO-LOAM 安装以及概述
  18. 机器学习百页书:机器学习中常用到的一些数学符号
  19. 6-7 学生成绩比高低
  20. 翻译质量评估的标准与方法

热门文章

  1. armadillo 库加入项目中程序卡死不运行的问题
  2. ZZ:WSS 扩展文件夹的属性--如何给文件夹添加扩展字段 from Jianyi0115
  3. ubuntu开机时网络图标不见了且不能上网
  4. 支撑百万级并发,Netty如何实现高性能内存管理
  5. JimuReport积木报表——分组报表怎么做
  6. jeecg怎么样好用吗?
  7. ORACLE10G导入11G导出的文件
  8. Java基础篇(02):特殊的String类,和相关扩展API
  9. Socket编程实践(13) --UNIX域协议
  10. SpringBoot使用@Cacheable实现最简单的Redis缓存