标签:name editable 表示 als 问题 判断 个数 names false
4 13 1 2 4 7
YES 2 4 7
代码:
#include <iostream> using namespace std; int n, tar, val[20],sum; bool flag, vis[20]; void ans() { cout << "YES" << ‘\n‘; for (int i = 0; i < n; i++) { if (vis[i]) cout << val[i] << ‘ ‘; } cout << endl; } void dfs(int pos) { if (sum > tar) return; if (sum == tar) { if (flag) return; flag = true; ans(); return; } for (int i = pos; i < n; i++) { sum += val[i]; vis[i] = true; dfs(i + 1); sum -= val[i]; vis[i] = false; } } int main() { ios::sync_with_stdio(false); cin.tie(false); while (cin >> n >> tar) { sum = 0; flag = false; for (int i = 0; i < n; i++) { cin >> val[i]; vis[i] = false; } dfs(0); if (!flag) { cout << "NO" << endl; } } return 0; }
标签:name editable 表示 als 问题 判断 个数 names false
原文地址:http://www.cnblogs.com/ray-coding-in-rays/p/6411363.html