51nod 1268 和为K的组合 dfs
来源:互联网 发布:罗技anywhere2 mac 编辑:程序博客网 时间:2024/05/17 03:59
题目:
1268 和为K的组合
基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题
给出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 13
2
4
6
8
10
Output示例
No
思路:dfs搜索,取或者不取。
代码:
#include <bits\stdc++.h> using namespace std;typedef long long ll;int a[22];int n,k;bool flag = false;void dfs(int x ,int k){ if(k == 0){ flag = true; return; } if(flag) return; if(x == n) return; if(k < 0) return; dfs(x+1,k); dfs(x+1,k-a[x]);}int main() { cin >> n >> k; for(int i = 0;i < n; i++){ cin >> a[i]; } dfs(0,k); if(flag) cout << "Yes" << endl; else cout << "No" << endl; return 0;}// writen by zhangjiuding
阅读全文
0 0
- 51nod 1268 和为K的组合 dfs
- 51nod 1268 和为K的组合 -dfs枚举
- 51nod 1268 和为K的组合【Dp/Dfs/折半枚举】
- 51nod 1268 和为K的组合 【dfs or dp】
- 和为K的组合 51Nod
- 51Nod 1268 和为K的组合(搜索/+回溯)
- 51 nod 1268 和为k的组合
- 51nod 1268 和为K的组合
- 51Nod-1268-和为K的组合
- 51nod 1268 和为k的组合
- 51nod-【1268 和为K的组合】
- 51nod 1268 和为K的组合
- 51Nod 1268 和为K的组合
- 51nod 1268 和为K的组合
- 51nod 1268 和为k的组合
- 51nod 1268 和为K的组合
- 51nod oj 1268 和为K的组合【dfs深搜----或二分区间再二分查找】
- 【51Nod】1268 - 和为K的组合(01背包 || bfs)
- JVM之垃圾收集算法
- eclipse创建maven项目报Could not calculate build plan: Plugin org.apache.maven.plugins:maven-war-plugin:2.
- POJ 1852 Ants O(n)
- 用反射、注解及DBUtils对Dao层抽取
- zk的watcher机制
- 51nod 1268 和为K的组合 dfs
- 【编译原理】词法分析(三)
- 【工具】如何在使用pc上的pycharm远程调试Ubuntu服务器上的python工程
- java虚拟机中的invokevirtual所造成的问题
- Arcpy查找指定用户的所有要素类并列举其属性信息
- POJ 2386 Lake Counting dfs
- C++ STL next_permutation() prev_permutation(a,a+n)用法。
- HDPCD-Java-复习笔记(23)- lab
- TensorFlow计算图、张量、回话详细介绍