二进制枚举:

#include<bits/stdc++.h>
using namespace std;
int main() {int n,k;int i,j;int a[25] = { 0 };while (cin >> n >> k) {int flag = 1;for (i = 0; i < n; i++)cin >> a[i];for (i = 0; i < 1 << n; i++) {long long sum = 0;for (j = 0; j <= n - 1; j++) {if (i & 1 << j) {sum += a[j];}}if (sum == k) {cout << "Yes"<<endl;flag = 0;break;}}if(flag==1)cout << "No"<<endl;}
}

深搜:

定义上的深度优先搜索的思路与树的先序遍历非常相似,是针对图的搜索而提出的一种算法,下面是算法导论上的解释:

在深度优先搜索中,对于最新发现的顶点,如果它还有以此为顶点而未探测到的边,就沿此边继续探测下去,当顶点v的所有边都已被探寻过后,搜索将回溯到发现顶点v有起始点的那些边。这一过程一直进行到已发现从源顶点可达的所有顶点为止。如果还存在未被发现的顶点,则选择其中一个作为源顶点,并重复上述过程。整个过程反复进行,直到所有的顶点都被发现时为止。

#include<bits/stdc++.h>
using namespace std;
int flag = 0;
int a[25] = { 0 };
long long sum = 0;
int n, k;
void dfs(int pre) {if (sum == k) {flag = 1;return;}for (int i = pre; i < n; i++) {sum += a[i];dfs(i + 1);sum -= a[i];}
}
int main() {while (cin >> n >> k) {for (int i = 0; i < n; i++)cin >> a[i];flag = 0;sum = 0;dfs(0);if (flag == 1) {cout << "Yes" << endl;}else {cout << "No" << endl;}}
}

和为K(二进制枚举和深搜)相关推荐

  1. 有趣的题目:简单深搜之数独与靶型数独--二进制状压加速与dfs数独剪枝

    Sudoku Time Limit: 2000MS   Memory Limit: 65536K 题目链接http://poj.org/problem?id=2676 Description Sudo ...

  2. hdu4876 深搜+(随机枚举剪枝)

    题意:       给你n个数,让你从选择k个数,然后排成一个环(k个数的顺序随意,但是排成一个环后就不能变了),然后可以在这个环上任意的找连续w个数(w<=k),可以找多次,得到一个值等于当前 ...

  3. 2412 - 和为K ---深搜dfs剪枝

    **2412 - 和为K ---深搜dfs优化 **来源:东方博宜oj oj.czos.cn #include<bits/stdc++.h> using namespace std; co ...

  4. 潜水员:【爆搜 + 二进制枚举 + DP】

    题目: 潜水员为了潜水要使用特殊的装备. 他有一个带2种气体的气缸:一个为氧气,一个为氮气. 让潜水员下潜的深度需要各种数量的氧和氮. 潜水员有一定数量的气缸. 每个气缸都有重量和气体容量. 潜水员为 ...

  5. 【二进制枚举】【dfs暴搜】

    原题链接 这道题,每个物品,就是选与不选两种情况,那么我们就用dfs暴搜,每次dfs要么选这个,要么不选这个 每次都到n+1停止 dfs方法 每次都暴力 选与不选两种情况,因为每个物品都有可能选或者不 ...

  6. 二进制枚举爆搜DFS

    给定一个如下图所示的全圆量角器. 初始时,量角器上的指针指向刻度 0. 现在,请你对指针进行 n 次拨动操作,每次操作给定一个拨动角度 ai,由你将指针拨动 ai 度,每次的拨动方向(顺时针或逆时针) ...

  7. 深搜、广搜、搜索剪枝

    搜索与回溯讲解 文章目录 深搜 方向向量: DFS代码: 题目讲解: 八皇后问题 字符序列 自然数的拆分 广搜 BFS代码: 题目讲解: 瓷砖 关系网络 bfs与dfs的用途与区别 搜索剪枝 可行性剪 ...

  8. 算法学习 (门徒计划)3-3 深搜(DFS)与广搜(BFS)及经典问题 学习笔记

    算法学习 (门徒计划)3-3 深搜(DFS)与广搜(BFS)及经典问题 学习笔记 前言 深搜与广搜 搜索的核心概念 问题求解树 搜索剪枝和优化 问题求解树的状态 对比深搜与广搜 DFS-深度(deep ...

  9. 一本通例题-生日蛋糕——题解超强深搜剪枝,从无限到有限

    题目传送 显然是道深搜题.由于蛋糕上表面在最底层的半径确认后就确认了,所以搜索时的面积着重看侧面积. 找维度/搜索面临状态/对象:当前体积v,当前外表面面积s,各层的半径r[],各层的高度h[]. 可 ...

最新文章

  1. git flow版本
  2. 编写AXI4协议读写BRAM并仿真验证
  3. 改变libreoffice的writer背景颜色
  4. ETL学习总结(2)——ETL数据集成工具之kettle、sqoop、datax、streamSets 比较
  5. js中数组(Array)的排序(sort)注意事项
  6. C++的类型转换操作符
  7. 6款字体转换工具网站,一键生成想要字体!
  8. java分布式面试题之消息队列ActiveMQ部分,java反序列化原理
  9. 差分进化算法求解函数最优解matlab实现
  10. java JSPX的介绍(转载)
  11. linux 怎样恢复模式,删除Linux的依赖库并进入救援模式恢复
  12. 谷歌云没有信用卡怎么注册服务器,谷歌云免费服务器申请方法
  13. 华北电力计算机学什么,华北电力大学有什么王牌专业?北京人眼中如何?
  14. Android学习笔记:实现app启动界面跳过倒计时功能
  15. jQWidgets 14.0 Crack
  16. 再见Python你好C语言,再见,Python 2 你好,Python 3
  17. 乐乐和表姐(共15张)nbsp;-nbsp;照片质量…
  18. 数学建模-对策论模型
  19. Python3中正则表达式使用方法
  20. OOP上半部分-Java与生活

热门文章

  1. 国产景嘉微(JM7200)显卡+KYLIN(银河麒麟)系统性能测试程式安装及运行
  2. 有没有识别图片文字的软件?这几款就很不错
  3. 下载iTunes12.6.3(商业版)-内置App Store
  4. 程序员面试如何进行正确的自我介绍
  5. 7-1 找第k小的数 (20 分)
  6. TOJ-1319 Odd Loving Bakers
  7. 2022股市行情分析:最新个股研究
  8. 国家级超级计算机中心没武汉,全国第7家国家超级计算中心
  9. matlab程序 材料力学,基于材料力学MATLAB系统设计报告(内含).doc
  10. Android 音乐播放器的开发教程(十)通知栏Notification的使用 ----- 小达