题目描述:

有若干张邮票,要求从中选取最少的邮票张数凑成一个给定的总值。
    如,有1分,3分,3分,3分,4分五张邮票,要求凑成10分,则使用3张邮票:3分、3分、4分即可。

输入:

有多组数据,对于每组数据,首先是要求凑成的邮票总值M,M<100。然后是一个数N,N〈20,表示有N张邮票。接下来是N个正整数,分别表示这N张邮票的面值,且以升序排列。

输出:

对于每组数据,能够凑成总值M的最少邮票张数。若无解,输出0。

样例输入:
10
5
1 3 3 3 4
样例输出:
3
import java.io.IOException;
import java.io.FileReader;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Scanner;class Main
{public static final boolean DEBUG = false;public static void main(String[] args) throws IOException{Scanner cin;int m, n;if (DEBUG) {cin = new Scanner(new FileReader("e:\\uva_in.txt"));} else {cin = new Scanner(System.in);}while (cin.hasNext()) {m = cin.nextInt();n = cin.nextInt();//System.out.println("m = " + m + " n = " + n);int[] c = new int[n + 1];for (int i = 1; i <= n; i++) {c[i] = cin.nextInt();//System.out.println(c[i]);}int[][] f = new int[m + 1][n + 1];for (int i = 1; i <= m; i++) {for (int j = 0; j <= n; j++) f[i][j] = 0x3f3f3f3f;}for (int i = 0; i <= n; i++) f[0][i] = 0;for (int j = 1; j <= n; j++) {for (int i = 1; i <= m; i++) {f[i][j] = f[i][j - 1];if (i >= c[j]) f[i][j] = Math.min(f[i][j], f[i - c[j]][j - 1] + 1);}}//System.out.println(f[m][n]);if (f[m][n] == 0x3f3f3f3f) System.out.println(0);else System.out.println(f[m][n]);}}
}

题目1209:最小邮票数相关推荐

  1. 九度笔记之 1209最小邮票数

    题目1209:最小邮票数 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:1176 解决:358 题目描述: 有若干张邮票,要求从中选取最少的邮票张数凑成一个给定的总值.     如,有1分 ...

  2. 最小邮票数(01背包)

    题目描述 有若干张邮票,要求从中选取最少的邮票张数凑成一个给定的总值.     如,有1分,3分,3分,3分,4分五张邮票,要求凑成10分,则使用3张邮票:3分.3分.4分即可. 输入描述: 有多组数 ...

  3. 算法题目——使用最小花费爬楼梯(动态规划)

    题目链接:746.使用最小花费爬楼梯 方法:动态规划 假设数组cost的长度为n,则n个阶梯分别对应下标0到n- 1,楼层顶部对应下标n,问题等价于计算达到下标n的最小花费.可以通过动态规划求解. 创 ...

  4. 漫画:BAT必考题目 (最小的k个数)

    今天分享一道比较简单的题目,希望大家可以5分钟掌握! 01 PART 最小的k个数 很简单有木有~ 最小的k个数:输入整数数组 arr ,找出其中最小的 k 个数.例如,输入4.5.1.6.2.7.3 ...

  5. C实现 题目 1209: 密码截获

    题目描述 Catcher是MCA国的情报员,他工作时发现敌国会用一些对称的密码 进行通信,比如像这些ABBA,ABA,A,123321,但是他们有时会在开始或结束时加入一些无关的字符以防止别国破解.比 ...

  6. P1021 邮票面值设计

    P1021 邮票面值设计 题目描述 给定一个信封,最多只允许粘贴N张邮票,计算在给定K(N+K≤15)种邮票的情况下(假定所有的邮票数量都足够),如何设计邮票的面值,能得到最大值MAX,使在1-MAX ...

  7. 计算机专业考研复试上机算法学习

    计算机专业考研复试上机算法学习 这篇博客是博主在准备可能到来的线下上机复试基于王道机试指南的学习,将各道习题链接和代码记录下来,这篇博客权且当个记录. 文章目录 计算机专业考研复试上机算法学习 1.S ...

  8. 计算机考研复试上机算法学习

    计算机考研复试上机算法学习 这篇博客是博主在准备可能到来的线下上机复试基于王道机试指南的学习,将各道习题链接和代码记录下来,这篇博客权且当个记录. 文章目录 计算机考研复试上机算法学习 1.STL容器 ...

  9. 九度 1209:最小邮票数(多重背包)

    题目描述: 有若干张邮票,要求从中选取最少的邮票张数凑成一个给定的总值     如,有1分,3分,3分,3分,4分五张邮票,要求凑成10分,则使用3张邮票:3分.3分.4分即可 思路 1. 朴素背包问 ...

最新文章

  1. 微软语音AI技术与微软听听文档小程序实践 | AI ProCon 2019
  2. 2019河北高职计算机专科学校录取分数线,2019河北高考专科院校录取分数线_专科各院校投档线_一品高考网...
  3. K8S 基于NFS实现文件集群间共享
  4. 慕课堂计算机word,数字技能 – 办公工具(Microsoft Word、Excel、Power Point)
  5. UNIX(多线程):17---异步任务提供者(Provider) 介绍
  6. 三、MyBatis 使用传统 Dao 开发方式
  7. php类方法属性省略,第十课—类的属性和类的方法 2018年9月3日 20时00分
  8. stream、string、byte[] 互转
  9. 如何实现两台Domino之间的相互访问
  10. python re包_使用Python中的re包将句子分成子句
  11. debian nvidia 安装_Debian安装Nvidia显卡驱动
  12. 手机网页 弹窗layerUI
  13. 戴尔服务器安装win2008找不到硬盘
  14. linux pdf中文乱码,英文乱码(乱码为方格之类的解决方法)
  15. Ubuntu下制作deb包的方法详解
  16. 黑马程序员就业班第二天的总结以及自己的看法
  17. 微信小程序内跳转公众号
  18. GStreamer基础教程02——GStreamer概念
  19. lrtimelapse中文教程_LRTimelapse中文教程
  20. QQ账户的申请与登录

热门文章

  1. 世界上第一位程序员是位美女——AdaLovelace【有图为证】
  2. 转一个链接:《八零后批判》作者-梁宏达
  3. C++调用web服务(java事例供参考)
  4. php如何返回数据请求数据格式化,PHP以json或xml数据格式返回请求数据的封装代码...
  5. python快速编程入门课后题答案-python语言程序设计基础(嵩天)第四章课后习题部分答案...
  6. 零基础自学python的建议-经验之谈——大学时候,我是如何零基础自学Python的?...
  7. 可以获取python整数类型帮助的是什么-下列选项中可以获取Python整数类型帮助的是...
  8. python历年来经典项目实例-【实战案例】利用Python输出精美表格的5个案例,过程详细...
  9. python装饰器实例-Python函数装饰器--实例讲解
  10. python人脸识别毕业设计-Python 40行代码实现人脸识别功能