Java实现 蓝桥杯VIP 算法提高 邮票面值设计
算法提高 邮票面值设计
时间限制:1.0s 内存限制:256.0MB
问题描述
给定一个信封,最多只允许粘贴N张邮票,计算在给定K(N+K≤13)种邮票的情况下(假定所有的邮票数量都足够),如何设计邮票的面值,能得到最大值MAX,使在1~MAX之间的每一个邮资值都能得到。
例如,N=3,K=2,如果面值分别为1分、4分,则在1分~6分之间的每一个邮资值都能得到(当然还有8分、9分和12分);如果面值分别为1分、3分,则在1分~7分之间的每一个邮资值都能得到。可以验证当N=3,K=2时,7分就是可以得到的连续的邮资最大值,所以MAX=7,面值分别为1分、3分。
输入格式
一行,两个数N、K
输出格式
两行,第一行升序输出设计的邮票面值,第二行输出“MAX=xx”(不含引号),其中xx为所求的能得到的连续邮资最大值。
样例输入
3 2
样例输出
1 3
MAX=7
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
class Scanner {
BufferedReader br;
StringTokenizer st;
InputStream in = System.in;
public Scanner() {
br = new BufferedReader(new InputStreamReader(in));
eat("");
}
private void eat(String s) {
st = new StringTokenizer(s);
}
public String nextLine() {
try {
return br.readLine();
} catch (IOException e) {
return null;
}
}
public boolean hasNext() {
while (!st.hasMoreTokens()) {
String s = nextLine();
if (s == null)
return false;
eat(s);
}
return true;
}
public String next() {
hasNext();
return st.nextToken();
}
public int nextInt() {
return Integer.parseInt(next());
}
public float nextFloat() {
return Float.parseFloat(next());
}
public Double nextDouble() {
return Double.parseDouble(next());
}
public Long nextLong(){
return Long.parseLong(next());
}
}
public class youpiaomianzhisheji {
static int N, K;
static int count[] = new int[11];
static int sum[] = new int[11];
static int Value[] = new int[1000];
public static void main(String[] args) {
Scanner in = new Scanner();
N = in.nextInt();
K = in.nextInt();
count[1] = 1; //1是固定的
Dp(1);
for (int i = 1; i <= K; i++) {
System.out.print(sum[i] + " ");
}
System.out.println();
System.out.print("MAX=" + (sum[0] - 1));
}
private static void Dp(int dp) {
int x = getbig(dp);
if (dp == K) {
return;
}
for (int i = x; i > count[dp]; i--) {
count[dp + 1] = i;
Dp(dp + 1);
}
}
private static int getbig(int dp) {
for (int i = 1; i <= 1000; i++) {
Value[i] = 1000;
for (int j = 1; j <= dp; j++)
if (i >= count[j]) {
Value[i] = Math.min(Value[i], Value[i - count[j]] + 1);
}
if (Value[i] > N) {
if (i > sum[0]) {
sum[0] = i;
for (int j = 1; j <= dp; ++j)
sum[j] = count[j];
}
return i;
}
}
return 0;
}
}
Java实现 蓝桥杯VIP 算法提高 邮票面值设计的更多相关文章
- Java实现 蓝桥杯VIP 算法提高 研究兔子的土豪
试题 算法提高 研究兔子的土豪 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 某天,HWD老师开始研究兔子,因为他是个土豪 ,所以他居然一下子买了一个可以容纳10^18代兔子的巨大 ...
- Java实现 蓝桥杯VIP 算法训练 邮票
算法训练 邮票 时间限制:1.0s 内存限制:512.0MB 问题描述 给定一个信封,有N(1≤N≤100)个位置可以贴邮票,每个位置只能贴一张邮票.我们现在有M(M<=100)种不同邮资的邮票 ...
- Java实现 蓝桥杯VIP 算法提高 3-2求存款
算法提高 3-2求存款 时间限制:1.0s 内存限制:256.0MB 问题描述 见计算机程序设计基础(乔林)P50第5题. 接受两个数,一个是用户一年期定期存款金额,一个是按照百分比格式表示的利率,计 ...
- Java实现 蓝桥杯VIP 算法提高 3-3求圆面积表面积体积
算法提高 3-3求圆面积表面积体积 时间限制:1.0s 内存限制:256.0MB 问题描述 接受用户输⼊的数值,输出以该值为半径的(1)圆面积,(2)球体表面积,(3)球体体积.pi 取值3.1415 ...
- Java实现 蓝桥杯VIP 算法提高 5-3日历
算法提高 5-3日历 时间限制:1.0s 内存限制:256.0MB 问题描述 已知2007年1月1日为星期一.设计一函数按照下述格式打印2007年以后(含)某年某月的日历,2007年以前的拒绝打印.为 ...
- Java实现 蓝桥杯VIP 算法提高 11-2删除重复元素
算法提高 11-2删除重复元素 时间限制:10.0s 内存限制:256.0MB 问题描述 为库设计新函数DelPack,删除输入字符串中所有的重复元素.不连续的重复元素也要删除. 要求写成函数,函数内 ...
- Java实现 蓝桥杯VIP 算法提高 P0401
算法提高 P0401 时间限制:1.0s 内存限制:256.0MB 输入一个无符号整数x,输出x的二进制表示中1的个数. 输入: 76584 输出: 7 import java.util.Scanne ...
- Java实现 蓝桥杯VIP 算法提高 理财计划
算法提高 理财计划 时间限制:1.0s 内存限制:256.0MB 问题描述 银行近期推出了一款新的理财计划"重复计息储蓄".储户只需在每个月月初存入固定金额的现金,银行就会在每个月 ...
- Java实现 蓝桥杯VIP 算法提高 解二元一次方程组
算法提高 解二元一次方程组 时间限制:1.0s 内存限制:256.0MB 问题描述 给定一个二元一次方程组,形如: a * x + b * y = c; d * x + e * y = f; x,y代 ...
随机推荐
- IE浏览器下报错: strict 模式下不允许一个属性有多个定义
vue项目,打包后在IE11和360浏览器(都是IE内核)上运行,控制台报了strict 模式下不允许一个属性有多个定义这个错误,导致流程不能正常走下去,查资料后知道应该是定义了重复的属性,于是就开始 ...
- php对接金蝶系统
金蝶系统是强大的财务系统,可对公司的财务进行整理,所以有的时候需要去我php系统来对接金蝶系统,为金蝶系统生成各种单据.下面是php对接金蝶的流程. 各种方法已经封装好,直接可以调用就行了. 1.如果 ...
- ipad4密码忘记锁定了如何破解
ipad4更新后被要求输入密码,但很长一段时间后忘记了,一直想不起来,也没有忘记密码的选项,以下是简单的破解方法. 注意:没有备份的资料是要被清空的 一.windows10系统,安装iTunes安装 ...
- dede文章列表根据权重自定义排序
首先在这里说明一下,网上搜索织梦文章列表自定义的方式无非有以下几种: 1.修改配置文件,新增一个orderid字段,想法很好,但是!但是!!!可能是早期版本的缘故,不适合现在的v5.7系统!按照网上说 ...
- 数据源管理 | OLAP查询引擎,ClickHouse集群化管理
本文源码:GitHub·点这里 || GitEE·点这里 一.列式库简介 ClickHouse是俄罗斯的Yandex公司于2016年开源的列式存储数据库(DBMS),主要用于OLAP在线分析处理查询, ...
- 复变函数-MINDMAPS-continuous updating
- robotframework利用selenium2Library实现无界面自动化关键字
1.docker下打开浏览器 2.本地下打开浏览器
- linux常用命令---文件权限操作
文件权限
- 使用urllib
urlopen的基本用法: 工具为:python3(windows) 其完整表达式为: urllib.request.urlopen(url, data=None, [timeout, ]*, caf ...
- hdu2665可持久化线段树,求区间第K大
Kth number Time Limit: 15000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...