nyoj--1058 部分和问题(dfs)
2016-03-19 16:42
393 查看
nyoj 1058
注意剪枝。
题解
dfs搜索。注意剪枝。
#include <iostream> #include <vector> #include <cstring> #include <algorithm> using namespace std; const int maxn = 25; int a[maxn], vis[maxn]; int n, k, flag; void dfs(int pos, int sum) { if(sum > k) return; if(sum == k){ if(flag) return; flag = 1; cout << "YES" << endl; for(int i = 0; i < n; ++i) if(vis[i]) cout << a[i] << " "; cout << endl; return; } for(int i = pos; i < n; ++i) { sum += a[i]; vis[i] = 1; dfs(i + 1, sum); sum -= a[i]; vis[i] = 0; } } int main() { while(cin >> n >> k) { memset(vis, 0, sizeof(vis)); for(int i = 0; i < n; ++i) cin >> a[i]; flag = 0; dfs(0, 0); if(!flag) cout << "NO" << endl; } return 0; }
相关文章推荐
- Win2003利用dfs(分布式文件系统)在负载均衡下的文件同步配置方案
- win2003分布式文件系统(dfs)配置方法[图文详解]
- win2003分布式文件系统及其部署 图文教程
- Hadoop2.6+jdk8的安装部署(1)——使用jar包安装部署【详细】
- Hadoop FS Shell
- DFS使用方法总结
- FastDFS注意事项
- 无忧技术带您预览DFS(分布式文件系统)管理控制台
- C 语言实现迷宫 DFS算法
- 一幅图弄清DFT与DTFT,DFS的关系
- HDFS---Namenode
- HDFS ---- Services startup
- POJ1523 SPF dfs
- poj1731 Orders dfs
- Surrounded Regions
- Binary Tree Zigzag Level Order Traversal,Restore IP Addresses,Word Search,Simplify Path
- DFS基础(1)
- HDU1241 Oil Deposits
- DFS算法有趣小题目
- ZOJ Problem Set - 1711 解题报告