NYOJ-1058(搜索)-题目----------------------------- 部分和问题
2015-03-07 14:19
423 查看
package org.acm.search; /*http://acm.nyist.net/JudgeOnline/problem.php?pid=1058*/ //这题和NYOJ927差不多 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Arrays; import java.util.Scanner; public class Search_1058 { private static long n, k, sum; private static long data[] = new long[21]; private static String result; public static void main(String[] args) { Scanner sc = new Scanner(new BufferedReader(new InputStreamReader(System.in))); while (sc.hasNext()) { n = sc.nextLong(); k = sc.nextLong(); // 初始化 sum = 0; result = ""; Arrays.fill(data, 0); for (int i = 0; i < n; i++) { data[i] = sc.nextLong(); sum += data[i]; } if (sum < k) System.out.println("NO"); else { if (dfs(0, 0)) { System.out.println("YES"); System.out.println(result.replaceFirst(" ", "")); } else System.out.println("NO"); } } sc.close(); } // 深搜 private static boolean dfs(int p, long s) { if (s == k) return true; if (p >= n) return false; if (dfs(p + 1, s + data[p])) { result = " " + data[p] + result; return true; } else { return dfs(p + 1, s); } } }
相关文章推荐
- 搜索学习(3)--NYOJ1058--部分和问题
- NYOJ之题目1058部分和问题
- NYOJ 1058 部分和问题(经典题目dfs)
- nyoj 1058部分和问题(DFS)
- nyist oj 1058 部分和问题 (DFS搜索)
- nyoj--1058--部分和问题(dfs)
- 南阳理工---题目1058部分和问题
- nyoj1058部分和问题(简单基础易上手的dfs)
- NYOJ 1058 部分和问题
- NYOJ 1058 部分和问题
- NYOJ 1058 部分和问题(dfs)
- NYOJ 1058部分和问题(dfs+回溯)
- nyoj1058部分和问题(基于01背包的思想)
- nyoj--1058 部分和问题(dfs)
- NYOJ 1058 部分和问题
- nyoj 1058 部分和问题
- NYOJ--42(搜索)-题目----------------------------- 一笔画问题
- NYOJ 1058--部分和问题【DFS】
- NYOJ 1058 部分和问题【DFS】
- NYOJ 1058 部分和问题(dfs)