当前位置: 首页 > article >正文

蓝桥杯2017年第八届真题-包子凑数

目录

题目描述

输入描述

输出描述

输入输出样例

示例 1

示例 2

运行限制

原题链接

代码思路


题目描述

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

输入输出样例

示例 1

输入

2
4
5

输出

6

样例说明

凑不出的数目包括:1, 2, 3, 6, 7, 11。

示例 2

输入

2
4
6

输出

INF

样例说明

所有奇数都凑不出来,所以有无限多个

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 256M

原题链接

包子凑数icon-default.png?t=O83Ahttps://www.lanqiao.cn/problems/98/learning/?page=1&first_category_id=1

代码思路

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int a[] = new int[n];
        int temp = 0;
        boolean dp[] = new boolean[10000];
        for (int i = 0; i < a.length; i++) {
            a[i] = scanner.nextInt();
            dp[a[i]] = true;
            temp = gcd(temp, a[i]);
        }
        if (temp != 1) {
            System.out.println("INF");
        } else {
            for (int i = 1; i < dp.length; i++) {
                if (dp[i]) {
                    for (int j = 0; j < a.length; j++) {
                        if (i + a[j] >= dp.length) {
                            continue;
                        }
                        dp[i + a[j]] = true;
                    }
                }

            }
            int ans = 0;
            for (int i = 1; i < dp.length; i++) {
                if (!dp[i]) {
                    ans++;
                }
            }
            System.out.println(ans);
        }
    }

    static int gcd(int a, int b) {
        return b == 0 ? a : gcd(b, a % b);
    }
}

http://www.kler.cn/news/363052.html

相关文章:

  • 云计算实验1——基于VirtualBox的Ubuntu安装和配置
  • vue开发的一个小插件vue.js devtools
  • 刷题 - 图论
  • [Ansible实践笔记]自动化运维工具Ansible(一):初探ansibleansible的点对点模式
  • 列表、元组、集合、字典和 pandas 数据框(DataFrame)之间的数据转换
  • 数据库中DDL、DML、DCL的区别是什么
  • Oracle VirtualBox虚拟机导入VMware ESXi的方法
  • redis的渐进式哈希?说一下细节?------面试题分享
  • 23种设计模式之工厂方法模式
  • 在 Python 的神经网络程序(特别是 PyTorch 框架中),`class` 和 `forward()` 是定义神经网络模型的关键部分。它们的作用如下:
  • pytorch调用手写CUDA算子和pybind11的使用
  • 军事领域的深度学习不同于机器学习中的深度学习
  • 如何在本地运行threejs官方示例
  • FPGA开发时,什么情况下使用BRAM,什么情况下使用DRAM
  • Linux系统基础-进程间通信(4)_模拟实现进程池
  • vb.net 关闭 开启 声卡
  • Python Faker方法大全
  • ArcGIS002:软件自定义设置
  • 售前解决方案笔试题|售前工程师笔试题|TCP/IP优化
  • 基于SpringBoot的“心灵治愈交流平台”的设计与实现(源码+数据库+文档+PPT)
  • Web3 开发者入门手册:技能、工具和职业前景
  • C++ 编程基础:传值、传指针和传引用详解
  • Java Lambda表达式:简化代码的优雅方式
  • 自动粘贴神器,数据复制粘贴快速处理记事本
  • 软件分享丨PDF Shaper
  • 【NodeJS】NodeJS+mongoDB在线版开发简单RestfulAPI (五):POST上传文件的设置