----------------------------------------

简单搜索+剪枝

因为考虑到可能会有多个解,所以是将中间过程保存最后才一起打印出来的

AC代码:

  1:
  2: import java.util.ArrayList;
  3: import java.util.List;
  4: import java.util.Scanner;
  5:
  6: public class Main {
  7:
  8: 	public static void main(String[] args) {
  9:
 10: 		Scanner sc=new Scanner(System.in);
 11:
 12: 		while(sc.hasNextInt()){
 13:
 14: 			int n=sc.nextInt();
 15: 			int k=sc.nextInt();
 16:
 17: 			int x[]=new int[n];
 18: 			for(int i=0;i<x.length;i++) x[i]=sc.nextInt();
 19:
 20: 			ans=new StringBuilder();
 21: 			dfs(x,0,k,new ArrayList<Integer>());
 22:
 23: 			System.out.println(ans.length()==0?"NO":ans);
 24: 		}
 25:
 26: 	}
 27:
 28: 	private static StringBuilder ans;
 29:
 30: 	public static void dfs(int x[],int i,int k,List<Integer> trackStack){
 31: 		if(k==0){
 32: 			if(ans.length()==0) ans.append("YES\n");
 33: 			for(int j=0;j<trackStack.size();j++) ans.append(trackStack.get(j)).append(" ");
 34: 			ans.append("\n");
 35: 			return;
 36: 		} else if(i==x.length || k<0) return;
 37:
 38: 		trackStack.add(x[i]);
 39: 		dfs(x,i+1,k-x[i],trackStack);
 40: 		trackStack.remove(trackStack.size()-1);
 41:
 42: 		dfs(x,i+1,k,trackStack);
 43: 	}
 44:
 45: }

题目来源: http://acm.nyist.net/JudgeOnline/problem.php?pid=1058

NYOJ之题目1058部分和问题的更多相关文章

  1. 九度oj 题目1058:反序输出

    题目1058:反序输出 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:9677 解决:3495 题目描述: 输入任意4个字符(如:abcd), 并按反序输出(如:dcba) 输入: 题目可 ...

  2. NYOJ 1058 部分和问题

    部分和问题 时间限制:1000 ms  |  内存限制:65535 KB 难度:2   描述 给定整数a1.a2........an,判断是否可以从中选出若干数,使它们的和恰好为K.   输入 首先, ...

  3. nyoj 1058部分和问题(DFS)

    部分和问题 时间限制:1000 ms  |  内存限制:65535 KB 难度:2   描述 给定整数a1.a2........an,判断是否可以从中选出若干数,使它们的和恰好为K.   输入 首先, ...

  4. NYOJ 1058 部分和问题 【DFS】

    部分和问题 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描写叙述 给定整数a1.a2........an,推断能否够从中选出若干数.使它们的和恰好为K. 输入 首先,n和k ...

  5. nyist oj 1058 部分和问题 (DFS搜索)

    部分和问题 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描写叙述 给定整数a1.a2........an.推断能否够从中选出若干数,使它们的和恰好为K. 输入 首先,n和k ...

  6. NYOJ之题目325 zb的生日

    -------------------------------------- 刷一辈子水题... AC代码: import java.util.Scanner; public class Main { ...

  7. NYOJ:题目490 翻译

    题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=490 这题的输入输出格式好像描述的不太清楚,1)可能是所有数据都完成输入,然后再输出(解法 ...

  8. NYOJ:题目529 flip

    题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=529 由于此题槽点太多,所以没忍住...吐槽Time: 看到这题通过率出奇的高然后愉快的进 ...

  9. NYOJ:题目524 A-B Problem

    题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=860 My思路: 先用两个字符串储存这两个实数,然后再用另外两个字符串储存去掉符号和前后多 ...

随机推荐

  1. 动手实践记录(利用django创建一个博客系统)

    1.添加一个分类的标签,和主表的关系是 外键 class Category(models.Model): """ 分类 """ name = ...

  2. 让 FreeBSD 和 Gentoo Linux 在 ZFS 存储卷上共存

    自我回归到 Librem 15 已经有段时间了.我一般会选择 FreeBSD 来处理所有的事情,但有时会要访问一个运行在 Librem 平台上的 Linux OS,以便用它来帮助我对一些遗留的设备驱动 ...

  3. mysql5.7安装配置

    sonar要求mysql5.6版本,所以安装一下最新的mysql5.7 相对路径配置一直存在问题,所以采用绝对路径配置,本次配置的基础路径是: D:\sonar\mysql-5.7.17-winx64 ...

  4. Python Day13

    堡垒机 权限管理 当你公司的服务器变的越来越多后,需要操作这些服务器的人就肯定不只是一个运维人员,同时也可能包括多个开发人员,那么这么多的人操作业务系统,如果权限分配不当就会存在很大的安全风险,举几个 ...

  5. phpcms首页实现轮播图

    1.在你想要加轮播图的位置加入以下 <div id="flowDiagram" > <div id="button"> <span ...

  6. js事件(Event)知识整理

    事件(Event)知识整理,本文由网上资料整理而来,需要的朋友可以参考下   鼠标事件 鼠标移动到目标元素上的那一刻,首先触发mouseover 之后如果光标继续在元素上移动,则不断触发mousemo ...

  7. Base64编码【转】

    转http://www.cnblogs.com/luguo3000/p/3940197.html 开发者对Base64编码肯定很熟悉,是否对它有很清晰的认识就不一定了.实际上Base64已经简单到不能 ...

  8. windows 下的sleep 命令

    方法一 ping -n 3 127.0.0.1 > nul 其中3是需要sleep的秒数 方法二 timeout /t 3 /nobreak > nul 其中3是需要sleep的秒数

  9. 12月13日上午Smarty模版原理

    模板主要是用来让前端和后端分离的,前台页面只是一个前台页面,后台页面用php代码写逻辑,写完逻辑拿到前台显示. 一.写法 一般需要以下:写3个页面: 1.显示页面aa.html <!DOCTYP ...

  10. Spring MVC学习笔记——SiteMesh的使用(转)

    转自 SiteMesh的使用 SiteMesh的介绍就不多说了,主要是用来统一页面风格,减少重复编码的. 它定义了一个过滤器,然后把页面都加上统一的头部和底部. 需要先在WEB-INF/lib下引入s ...