蓝桥杯——说好的进阶之买不到的数目

问题描述

小明开了一家糖果店。他别出心裁:把水果糖包成4颗一包和7颗一包的两种。糖果不能拆包卖。

小朋友来买糖的时候,他就用这两种包装来组合。当然有些糖果数目是无法组合出来的,比如要买 10 颗糖。

你可以用计算机测试一下,在这种包装情况下,最大不能买到的数量是17。大于17的任何数字都可以用4和7组合出来。

本题的要求就是在已知两个包装的数量时,求最大不能组合出的数字。

输入格式

两个正整数,表示每种包装中糖的颗数(都不多于1000)

输出格式

一个正整数,表示最大不能买到的糖数

样例输入1

4 7

样例输出1

17

样例输入2

3 5

样例输出2

7

import java.util.Scanner;

public class Main{

	static int[] v = new int[100001];
	static int[] b ;//= { 3, 5 };

	public static void main(String[] args) {
		Scanner scanner=new Scanner(System.in);
		String[] sarr=scanner.nextLine().split(" ");
		b=new int[sarr.length];
		for(int i=0;i<sarr.length;i++)
		{
			b[i]=Integer.parseInt(sarr[i]);
		}
		cal();
	}

	static void cal() {
		for (int i = 0; i < b.length; i++)
			v[b[i]] = 1;
		for (int i = 1; i < v.length; i++) {
			for (int j = 0; j < b.length; j++) {
				if (i - b[j] >= 0 && v[i - b[j]] == 1) {
					v[i] = 1;
				}
			}
		}
		int max = 0;
		for (int i = 1; i < v.length; i++) {
			if (v[i] != 1) {
				max = i;
			}
		}
		System.out.print(max);
	}
}

蓝桥杯——说好的进阶之买不到的数目,布布扣,bubuko.com

时间: 2024-10-10 09:49:12

蓝桥杯——说好的进阶之买不到的数目的相关文章

蓝桥杯——说好的进阶之完全背包问题

有N种物品和一个载重量为W的背包,每种物品都有无限件可用.第i种物品的重量是w,价值是p.将哪些物品装入背包可使这些物品的重量总和不超过背包总重量,且价值总和最大.(对比01背包问题,取或不取与无限件) static int W=10; static int[] w_arr = new int[]{3,2,5,1,6,4}; static int[] p_arr = new int[]{6,5,10,2,16,8}; static int[][] v; public static void ma

蓝桥杯——说好的进阶之砝码称重(贪心算法)

5个砝码 用天平称重时,我们希望用尽可能少的砝码组合称出尽可能多的重量. 如果只有5个砝码,重量分别是1,3,9,27,81.则它们可以组合称出1到121之间任意整数重量(砝码允许放在左右两个盘中). 本题目要求编程实现:对用户给定的重量,给出砝码组合方案. 例如: 用户输入: 5 程序输出: 9-3-1 用户输入: 19 程序输出: 27-9+1 要求程序输出的组合总是大数在前小数在后. 可以假设用户的输入的数字符合范围1~121. public static void main(String

蓝桥杯——说好的进阶之入学考试

问题描述 辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师.为此,他想拜附近最有威望的医师为师.医师为了判断他的资质,给他出了一个难题.医师把他带到一个到处都是草药的山洞里对他说:"孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值.我会给你一段时间,在这段时间里,你可以采到一些草药.如果你是一个聪明的孩子,你应该可以让采到的草药的总价值最大." 如果你是辰辰,你能完成这个任务吗? 输入格式 第一行有两个整数T(1 <= T <= 10

蓝桥杯——说好的进阶之去重复元素的排列组合

将待排列(组合)的数组,先分别统计出种类和个数,然后进行避免重复的排列(组合). /* 1,1,2,3的排列组合 去重复 * (借此复习排列组合) * * 1:2 2个1 * 2:1 1个2 * 3:1 1个3 * * */ static int[] iarr = new int[3];//目标序列 static int[] carr = new int[] { 1, 2, 3 };//3种item static int[] used = new int[] { 2, 1, 1 };//每种it

蓝桥杯——说好的进阶之和式分解

对于正整数 n,输出和等于 n且组成和式的数字从左至右是非递增的所有正整数和式. 输入: 6 输出: 6=6 6=5+1 6=4+2 6=4+1+1 6=3+3 6=3+2+1 6=3+1+1+1 6=2+2+2 6=2+2+1+1 6=2+1+1+1+1 6=1+1+1+1+1+1 import java.util.Scanner; public class Main{ static int[] a = new int[1000]; public static void main(String

蓝桥杯——说好的进阶之多叉树的遍历

多叉树,简单地说,与二叉树类似的,但叉可能要多的树形结构:类似于计算机文件目录. static class MyTree { private Map map = new HashMap(); public void add(char parent, char child) { List<Character> t = (List<Character>) map.get(parent);// child list if (t == null) { t = new Vector<C

蓝桥杯——说好的进阶之取数博弈游戏(动态规划实现)

今盒子里有n个小球,A.B两人轮流从盒中取球,每个人都可以看到另一个人取了多少个,也可以看到盒中还剩下多少个,并且两人都很聪明,不会做出错误的判断. 我们约定: 每个人从盒子中取出的球的数目必须是:1,3,7或者8个. 轮到某一方取球时不能弃权! A先取球,然后双方交替取球,直到取完. 被迫拿到最后一个球的一方为负方(输方) 请编程确定出在双方都不判断失误的情况下,对于特定的初始球数,A是否能赢? 程序运行时,从标准输入获得数据,其格式如下: 先是一个整数n(n<100),表示接下来有n个整数.

蓝桥杯——说好的进阶之全然背包问题

有N种物品和一个载重量为W的背包,每种物品都有无限件可用.第i种物品的重量是w,价值是p. 将哪些物品装入背包可使这些物品的重量总和不超过背包总重量,且价值总和最大.(对照01背包问题,取或不取与无限件) static int W=10; static int[] w_arr = new int[]{3,2,5,1,6,4}; static int[] p_arr = new int[]{6,5,10,2,16,8}; static int[][] v; public static void m

【蓝桥杯单片机10】串行接口的进阶与实战应用

[蓝桥杯单片机10]串行接口的进阶与实战应用 广东职业技术学院 欧浩源 串行接口作为51单片机的重要外设,编程操作并不复杂,但在实际的项目应用中,由于数据结构和通信规约的不同,其程序逻辑也有各种变化,不会像"[蓝桥杯单片机09]串行接口的基本原理与应用"中说的那么简易.      一般情况下,上位机的命令可能不是一个字节,而是多个字节组成的命令帧,有的长度固定,有的长度变化:而且要求返回的数据可能也不是一个字节,可能是一个数组,也有可能是一个字符串等.在蓝桥杯的比赛中,也不可能让你只是