标题:包子凑数
小明几乎每天早晨都会在一家包子铺吃早餐。他发现这家包子铺有N种蒸笼,其中第i种蒸笼恰好能放Ai个包子。每种蒸笼都有非常多笼,可以认为是无限笼。
每当有顾客想买X个包子,卖包子的大叔就会迅速选出若干笼包子来,使得这若干笼中恰好一共有X个包子。比如一共有3种蒸笼,分别能放3、4和5个包子。当顾客想买11个包子时,大叔就会选2笼3个的再加1笼5个的(也可能选出1笼3个的再加2笼4个的)。
当然有时包子大叔无论如何也凑不出顾客想买的数量。比如一共有3种蒸笼,分别能放4、5和6个包子。而顾客想买7个包子时,大叔就凑不出来了。
小明想知道一共有多少种数目是包子大叔凑不出来的。
输入
----
第一行包含一个整数N。(1 <= N <= 100)
以下N行每行包含一个整数Ai。(1 <= Ai <= 100)
输出
----
一个整数代表答案。如果凑不出的数目有无限多个,输出INF。
例如,
输入:
2
4
5
程序应该输出:
6
再例如,
输入:
2
4
6
程序应该输出:
INF
样例解释:
对于样例1,凑不出的数目包括:1, 2, 3, 6, 7, 11。
对于样例2,所有奇数都凑不出来,所以有无限多个。
解析:背包问题
package com.sihai.test;
import java.util.Scanner;
public class test {
static int dp[] = new int[10000];
public static boolean judge(int x,int y)
{
int t;
while(y>0)
{
t=x%y;
x=y;
y=t;
}
if(x==1)
return true;
return false;
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int a[] = new int[200];
int n = 0,i,j,res,mark;
n = scanner.nextInt();
while(true)
{
res=0;
mark=0;
for(i=1;i<=n;i++)
{
a[i] = scanner.nextInt();
}
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
if(judge(a[i],a[j]))
{
mark=1;
break;
}
}
if(mark==1)
break;
}
if(mark!=1)
{
System.out.println("INF");
continue;
}
dp[0]=1;
for(i=1;i<=n;i++)
for(j=1;j<10000;j++)
{
if(a[i]>j)
continue;
if(dp[j-a[i]]==1)
dp[j]=1;
}
for(i=0;i<10000;i++)
{
if(dp[i]!=1)
res++;
}
System.out.println(res);
}
}
}
<script type="text/javascript">
$(function () {
$('pre.prettyprint code').each(function () {
var lines = $(this).text().split('\n').length;
var $numbering = $('<ul/>').addClass('pre-numbering').hide();
$(this).addClass('has-numbering').parent().append($numbering);
for (i = 1; i <= lines; i++) {
$numbering.append($('<li/>').text(i));
};
$numbering.fadeIn(1700);
});
});
</script>
分享到:
相关推荐
【标题】"2018年省赛第九届蓝桥杯真题Java B组"是针对一项编程竞赛的真题集,主要针对Java语言的B组参赛者。蓝桥杯是一项国内知名的编程竞赛,旨在检验学生的算法设计和编程能力,尤其在解决实际问题上的应用。该...
【标题】"第十三届蓝桥杯单片机国赛真题"揭示了这是一次针对单片机技术的竞赛,蓝桥杯是中国知名的编程与电子设计竞赛,旨在提升学生的实践能力和创新思维。单片机是嵌入式系统的核心,常用于自动化、物联网以及各种...
【标题】"2019年4月1日蓝桥杯省赛第十届蓝桥杯真题JAVA(G组)"指的是2019年度第十届蓝桥杯程序设计竞赛的省级比赛,该比赛针对Java编程语言组别的一系列真题。蓝桥杯是一项全国性的IT技能竞赛,旨在检验参赛者的编程...
【标题】:“第十届蓝桥杯Java大学本科B组省赛试题” 【描述】:“第十届蓝桥杯Java大学本科B组省赛试题”是一场针对大学生Java编程能力的竞赛,旨在检验参赛者的编程基础、算法理解以及问题解决能力。蓝桥杯比赛...
【标题】中的“蓝桥杯嵌入式第九届省赛程序设计题”指的是一个与嵌入式系统开发相关的竞赛,名为“蓝桥杯”。蓝桥杯是中国一项知名的计算机软件和电子设计竞赛,旨在促进信息技术和电子科技的发展,提高学生的创新...
【标题】2018省赛第九届蓝桥杯真题Java语言B组是一场针对Java编程技术的竞赛,旨在检验参赛者对于Java语言的理解和应用能力。在这样的比赛中,参赛者通常会遇到各种类型的编程问题,涵盖基础语法、数据结构、算法...
【标题】2019第十届蓝桥杯Java省赛B组题目,是针对Java编程技术的一次省级竞赛,旨在检验参赛者在实际问题解决、算法设计与实现、数据结构运用等方面的能力。作为一场专业赛事,它对于提升Java开发者的技术素养具有...
【压缩包子文件的文件名称列表】:“第十二届蓝桥杯真题”可能是包含所有单片机竞赛题目的文档,可能包括试题、解答、参考代码或评分标准等,为参赛者提供了一次模拟真实比赛环境的机会。 基于以上信息,我们可以...
【标题】:“第14届蓝桥杯单片机省赛程序题题目”涉及的是一个教育竞赛中的实际问题,这个比赛旨在检验参赛者在单片机编程和设计方面的技能。蓝桥杯是一个知名的全国性信息技术竞赛,对于学习计算机科学、电子工程...
【标题】:“第十一届蓝桥杯省赛真题--寻找 2020配套文档” 这标题揭示了我们关注的焦点是第十一届蓝桥杯省赛的竞赛题目,特别是与2020年相关的部分。蓝桥杯是一项广受关注的全国性程序设计竞赛,旨在提升大学生和...
【标题】"第15届蓝桥杯EDA省赛真题"揭示了这是一场针对电子设计自动化(EDA)技术的竞赛,旨在测试参赛者在该领域的知识与技能。蓝桥杯是一项广受关注的全国性信息技术竞赛,涵盖编程、算法、电子设计等多个领域,...
【标题】"蓝桥杯JAVA2015年预选赛"揭示了这是一场针对JAVA编程语言的竞赛,旨在测试参赛者对于该语言的掌握程度和应用能力。"蓝桥杯"是知名的全国性软件和信息技术专业人才大赛,自2010年起举办,每年吸引大量在校...
【描述】中提到的"2018年第九届蓝桥杯javaB组真题"重复了标题的信息,暗示这份资料可能包含了一些当年比赛的实际题目,对于想要了解蓝桥杯赛题风格、准备类似比赛或者提高Java编程技能的人来说,是非常有价值的资源...
【压缩包子文件的文件名称列表】"第十四届蓝桥杯真题"可能包含了历届比赛的题目、解答、样例代码等资源。通过这些资料,学习者可以了解到历年来蓝桥杯比赛的难度水平、热点话题以及解题策略,从而有针对性地进行复习...
【标题】"蓝桥杯嵌入式-第六届省赛-电压测量监控设备"涉及的知识点主要集中在嵌入式系统的设计与开发,特别是针对电压测量监控的硬件和软件集成。蓝桥杯大赛是针对信息技术和电子工程领域的一项竞赛,旨在检验参赛者...
【标题】"2018年省赛第九届蓝桥杯真题Java(C组)"涉及的是编程竞赛领域,特别是Java语言在其中的应用。蓝桥杯是全国性的重要编程竞赛,旨在提升大学生的软件和信息技术专业技能,特别是对于算法设计与编程能力的培养...
【压缩包子文件的文件名称列表】中的"15432772"可能代表一个具体的文件编号或者某种编码,由于没有更具体的信息,我们无法确定它具体指的是哪一道题目或解答,但可以推测这个文件可能包含了第十五届蓝桥杯单片机组...
【标题】"第14届蓝桥杯Scratch(中级)国赛真题解析2023.5.28" 提供了这次比赛的重要信息,即这是一次关于Scratch编程的全国性竞赛,针对的是中级水平的参赛者。蓝桥杯是一个知名的IT教育与竞赛平台,旨在培养青少年的...
【标题】:“第十四届蓝桥杯单片机国赛程序设计题”涉及的是一个针对单片机编程的竞赛题目,旨在考核参赛者对于单片机硬件基础、嵌入式系统设计以及C语言编程能力的理解与应用。蓝桥杯是一项全国性的专业技能比赛,...
【标题】"2014_第五届_蓝桥杯_省赛——简易温度采集与控制装置" 是一个关于单片机设计与开发的比赛项目,它聚焦于实现一个基础的温度监测和调节系统。这个项目在2014年的蓝桥杯大赛中作为省级比赛的一个环节,旨在...