部分和问题
2016-04-07 13:30
176 查看
从给定整数a1,a2,a3...an,判断是否可以从中选出若干数,使他们的和恰好为k。
#include <cstdio> #include <cstdlib> using namespace std; const int Maxn = 21; int a[Maxn]; int n,k; bool dfs(int k, int i){ if(i==n){ return k==0; } return (dfs(k-a[i], i+1) | dfs(k,i+1)); } int main() { scanf("%d %d", &n,&k); for(int i=0; i<n; ++i){ scanf("%d", &a[i]); } printf("%d\n", dfs(k,0)); return 0; }
深度优先搜索
时间复杂度为O(2n)因此可以用于当n较小时候的情况。
相关文章推荐
- 搜狗百度360市值齐跌:搜索引擎们陷入集体焦虑?
- 本人即将筹备败家日志,敬请期待!
- IE:使用搜索助手
- C++深度优先搜索的实现方法
- 基于文本的搜索
- php实现搜索一维数组元素并删除二维数组对应元素的方法
- 使用Sphinx对索引进行搜索
- asp 多关键词搜索的简单实现方法
- C#使用foreach语句搜索数组元素的方法
- WordPress中用于获取搜索表单的PHP函数使用解析
- JavaScript中数组的排序、乱序和搜索实现代码
- jquery ztree实现树的搜索功能
- C#编程实现Excel文档中搜索文本内容的方法及思路
- Win2003利用dfs(分布式文件系统)在负载均衡下的文件同步配置方案
- sqlserver中在指定数据库的所有表的所有列中搜索给定的值
- 可以用来搜索当前页面内容的js代码
- 全文搜索和替换
- javascript搜索自动提示功能的实现第1/3页
- iOS应用中UISearchDisplayController搜索效果的用法
- mysql 模糊搜索的方法介绍