`
SIHAIloveYAN
  • 浏览: 124525 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

蓝桥杯java第八届第八题--包子凑数

 
阅读更多
标题:包子凑数

小明几乎每天早晨都会在一家包子铺吃早餐。他发现这家包子铺有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组

    【标题】"2018年省赛第九届蓝桥杯真题Java B组"是针对一项编程竞赛的真题集,主要针对Java语言的B组参赛者。蓝桥杯是一项国内知名的编程竞赛,旨在检验学生的算法设计和编程能力,尤其在解决实际问题上的应用。该...

    第十三届蓝桥杯单片机国赛真题

    【标题】"第十三届蓝桥杯单片机国赛真题"揭示了这是一次针对单片机技术的竞赛,蓝桥杯是中国知名的编程与电子设计竞赛,旨在提升学生的实践能力和创新思维。单片机是嵌入式系统的核心,常用于自动化、物联网以及各种...

    2019年4月1日蓝桥杯省赛第十届蓝桥杯真题JAVA(G组)

    【标题】"2019年4月1日蓝桥杯省赛第十届蓝桥杯真题JAVA(G组)"指的是2019年度第十届蓝桥杯程序设计竞赛的省级比赛,该比赛针对Java编程语言组别的一系列真题。蓝桥杯是一项全国性的IT技能竞赛,旨在检验参赛者的编程...

    第十届蓝桥杯Java大学本科B组省赛试题

    【标题】:“第十届蓝桥杯Java大学本科B组省赛试题” 【描述】:“第十届蓝桥杯Java大学本科B组省赛试题”是一场针对大学生Java编程能力的竞赛,旨在检验参赛者的编程基础、算法理解以及问题解决能力。蓝桥杯比赛...

    蓝桥杯嵌入式第九届省赛程序设计题(完整工程+题目)(0积分,拿走请点赞)

    【标题】中的“蓝桥杯嵌入式第九届省赛程序设计题”指的是一个与嵌入式系统开发相关的竞赛,名为“蓝桥杯”。蓝桥杯是中国一项知名的计算机软件和电子设计竞赛,旨在促进信息技术和电子科技的发展,提高学生的创新...

    2018省赛第九届蓝桥杯真题Java语言B组

    【标题】2018省赛第九届蓝桥杯真题Java语言B组是一场针对Java编程技术的竞赛,旨在检验参赛者对于Java语言的理解和应用能力。在这样的比赛中,参赛者通常会遇到各种类型的编程问题,涵盖基础语法、数据结构、算法...

    2019 第十届蓝桥杯Java省赛B组题目

    【标题】2019第十届蓝桥杯Java省赛B组题目,是针对Java编程技术的一次省级竞赛,旨在检验参赛者在实际问题解决、算法设计与实现、数据结构运用等方面的能力。作为一场专业赛事,它对于提升Java开发者的技术素养具有...

    第十二届蓝桥杯单片机真题

    【压缩包子文件的文件名称列表】:“第十二届蓝桥杯真题”可能是包含所有单片机竞赛题目的文档,可能包括试题、解答、参考代码或评分标准等,为参赛者提供了一次模拟真实比赛环境的机会。 基于以上信息,我们可以...

    第14届蓝桥杯单片机省赛程序题题目,省赛考试原题

    【标题】:“第14届蓝桥杯单片机省赛程序题题目”涉及的是一个教育竞赛中的实际问题,这个比赛旨在检验参赛者在单片机编程和设计方面的技能。蓝桥杯是一个知名的全国性信息技术竞赛,对于学习计算机科学、电子工程...

    第十一届蓝桥杯省赛真题--寻找 2020配套文档

    【标题】:“第十一届蓝桥杯省赛真题--寻找 2020配套文档” 这标题揭示了我们关注的焦点是第十一届蓝桥杯省赛的竞赛题目,特别是与2020年相关的部分。蓝桥杯是一项广受关注的全国性程序设计竞赛,旨在提升大学生和...

    第15届蓝桥杯EDA省赛真题

    【标题】"第15届蓝桥杯EDA省赛真题"揭示了这是一场针对电子设计自动化(EDA)技术的竞赛,旨在测试参赛者在该领域的知识与技能。蓝桥杯是一项广受关注的全国性信息技术竞赛,涵盖编程、算法、电子设计等多个领域,...

    蓝桥杯JAVA2015年预选赛

    【标题】"蓝桥杯JAVA2015年预选赛"揭示了这是一场针对JAVA编程语言的竞赛,旨在测试参赛者对于该语言的掌握程度和应用能力。"蓝桥杯"是知名的全国性软件和信息技术专业人才大赛,自2010年起举办,每年吸引大量在校...

    2018第九届蓝桥杯javaB组真题

    【描述】中提到的"2018年第九届蓝桥杯javaB组真题"重复了标题的信息,暗示这份资料可能包含了一些当年比赛的实际题目,对于想要了解蓝桥杯赛题风格、准备类似比赛或者提高Java编程技能的人来说,是非常有价值的资源...

    第十届单片机蓝桥杯真题

    【压缩包子文件的文件名称列表】"第十四届蓝桥杯真题"可能包含了历届比赛的题目、解答、样例代码等资源。通过这些资料,学习者可以了解到历年来蓝桥杯比赛的难度水平、热点话题以及解题策略,从而有针对性地进行复习...

    蓝桥杯嵌入式-第六届省赛-电压测量监控设备

    【标题】"蓝桥杯嵌入式-第六届省赛-电压测量监控设备"涉及的知识点主要集中在嵌入式系统的设计与开发,特别是针对电压测量监控的硬件和软件集成。蓝桥杯大赛是针对信息技术和电子工程领域的一项竞赛,旨在检验参赛者...

    这是2018年省赛第九届蓝桥杯真题Java(C组)

    【标题】"2018年省赛第九届蓝桥杯真题Java(C组)"涉及的是编程竞赛领域,特别是Java语言在其中的应用。蓝桥杯是全国性的重要编程竞赛,旨在提升大学生的软件和信息技术专业技能,特别是对于算法设计与编程能力的培养...

    蓝桥杯单片机组十五届省赛参考答案

    【压缩包子文件的文件名称列表】中的"15432772"可能代表一个具体的文件编号或者某种编码,由于没有更具体的信息,我们无法确定它具体指的是哪一道题目或解答,但可以推测这个文件可能包含了第十五届蓝桥杯单片机组...

    第14届蓝桥杯Scratch(中级)国赛真题解析2023.5.28

    【标题】"第14届蓝桥杯Scratch(中级)国赛真题解析2023.5.28" 提供了这次比赛的重要信息,即这是一次关于Scratch编程的全国性竞赛,针对的是中级水平的参赛者。蓝桥杯是一个知名的IT教育与竞赛平台,旨在培养青少年的...

    第十四届蓝桥杯单片机国赛程序设计题

    【标题】:“第十四届蓝桥杯单片机国赛程序设计题”涉及的是一个针对单片机编程的竞赛题目,旨在考核参赛者对于单片机硬件基础、嵌入式系统设计以及C语言编程能力的理解与应用。蓝桥杯是一项全国性的专业技能比赛,...

    2014_第五届_蓝桥杯_省赛——简易温度采集与控制装置

    【标题】"2014_第五届_蓝桥杯_省赛——简易温度采集与控制装置" 是一个关于单片机设计与开发的比赛项目,它聚焦于实现一个基础的温度监测和调节系统。这个项目在2014年的蓝桥杯大赛中作为省级比赛的一个环节,旨在...

Global site tag (gtag.js) - Google Analytics