蓝桥杯C/C++省赛:买不到的数目

2023-11-09

目录

题目描述

思路分析

AC代码(方法一)

AC代码(方法二)


题目描述

小明开了一家糖果店。他别出心裁:把水果糖包成4颗一包和7颗一包的两种。糖果不能拆包卖。
小朋友来买糖的时候,他就用这两种包装来组合。当然有些糖果数目是无法组合出来的,比如要买 10 颗糖。
你可以用计算机测试一下,在这种包装情况下,最大不能买到的数量是17。大于17的任何数字都可以用4和7组合出来。
本题的要求就是在已知两个包装的数量时,求最大不能组合出的数字。

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

要求输出:
一个正整数,表示最大不能买到的糖数

不需要考虑无解的情况

例如:
用户输入:
4 7
程序应该输出:
17

再例如:
用户输入:
3 5
程序应该输出:
7

思路分析

方法一:

图论知识:

自然数a,b互质,则不能表示成ax+by(x,y为非负整数)的最大整数是ab-a-b。

极其NB的性质,高级的数学定理搞定一切美妙的算法。

方法二:

数学知识:

a和b线性组合不能表示的数字介于a+b-1和a和b的最小公倍数之间。

这里需要暴力遍历,其实这个性质就解决了遍历的上限。

我们需要三个函数,一个求最大公因数,一个求最小公倍数,一个检查是否不能由a和b表示。

我的疑惑

有没有懂哥解释一下为什么这两个性质是成立的?

AC代码(方法一)

#include <bits/stdc++.h>

using namespace std;

int main() {
    int m,n;
    cin>>m>>n;
    cout<<m*n-m-n;
    return 0;
}

AC代码(方法二)

#include <bits/stdc++.h>

using namespace std;

int GCD(int a, int b) {
    while (a % b) {
        int temp = a % b;
        a = b;
        b = temp;
    }
    return b;
}

int LCM(int &a, int &b) {
    return a * b / GCD(a, b);
}

bool Check(int &test, int &a, int &b) {
    for (int i = 0; i <= b; i++)
        for (int j = 0; j <= a; j++)
            if (test == i * a + j * b)
                return false;
    return true;
}

int main() {
    int m, n, i;
    cin >> m >> n;
    for (i = LCM(m, n) - 1; i >= m + n - 1; i--)
        if (Check(i, m, n)) {
            cout << i;
            return 0;
        }
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

蓝桥杯C/C++省赛:买不到的数目 的相关文章

  • 编译时运算符

    有人可以列出 C 中可用的所有编译时运算符吗 C 中有两个运算符 无论操作数如何 它们的结果始终可以在编译时确定 它们是sizeof 1 and 2 当然 其他运算符的许多特殊用途可以在编译时解决 例如标准中列出的那些整数常量表达式 1 与
  • 没有强命名的代码签名是否会让您的应用程序容易被滥用?

    尝试了解authenticode代码签名和强命名 我是否正确地认为 如果我对引用一些 dll 非强命名 的 exe 进行代码签名 恶意用户就可以替换我的 DLL 并以看似由我签名但正在运行的方式分发应用程序他们的代码 假设这是真的 那么您似
  • “构建”构建我的项目,“构建解决方案”则不构建

    我刚刚开始使用VS2010 我有一个较大的解决方案 已从 VS2008 成功迁移 我已将一个名为 Test 的控制台应用程序项目添加到解决方案中 选择构建 gt 构建解决方案不编译新项目 选择构建 gt 构建测试确实构建了项目 在失败的情况
  • Web 客户端和 Expect100Continue

    使用 WebClient C NET 时设置 Expect100Continue 的最佳方法是什么 我有下面的代码 我仍然在标题中看到 100 continue 愚蠢的 apache 仍然抱怨 505 错误 string url http
  • ASP.NET MVC:这个业务逻辑应该放在哪里?

    我正在开发我的第一个真正的 MVC 应用程序 并尝试遵循一般的 OOP 最佳实践 我正在将控制器中的一些简单业务逻辑重构到我的域模型中 我最近一直在阅读一些内容 很明显我应该将逻辑放在域模型实体类中的某个位置 以避免出现 贫血域模型 反模式
  • 查找c中结构元素的偏移量

    struct a struct b int i float j x struct c int k float l y z 谁能解释一下如何找到偏移量int k这样我们就可以找到地址int i Use offsetof 找到从开始处的偏移量z
  • 使用实体框架模型输入安全密钥

    这是我今天的完美想法 Entity Framework 中的强类型 ID 动机 比较 ModelTypeA ID 和 ModelTypeB ID 总是 至少几乎 错误 为什么编译时不处理它 如果您使用每个请求示例 DbContext 那么很
  • 如何使用 ICU 解析汉字数字字符?

    我正在编写一个使用 ICU 来解析由汉字数字字符组成的 Unicode 字符串的函数 并希望返回该字符串的整数值 五 gt 5 三十一 gt 31 五千九百七十二 gt 5972 我将区域设置设置为 Locale getJapan 并使用
  • Clang 3.1 + libc++ 编译错误

    我已经构建并安装了 在前缀下 alt LLVM Clang trunk 2012 年 4 月 23 日 在 Ubuntu 12 04 上成功使用 GCC 4 6 然后使用此 Clang 构建的 libc 当我想使用它时我必须同时提供 lc
  • 使用 WebClient 时出现 System.Net.WebException:无法创建 SSL/TLS 安全通道

    当我执行以下代码时 System Net ServicePointManager ServerCertificateValidationCallback sender certificate chain errors gt return t
  • 带动态元素的 WPF 启动屏幕。如何?

    我是 WPF 新手 我需要一些帮助 我有一个加载缓慢的 WPF 应用程序 因此我显示启动屏幕作为权宜之计 但是 我希望能够在每次运行时更改屏幕 并在文本区域中显示不同的引言 这是一个生产力应用程序 所以我将使用非愚蠢但激励性的引言 当然 如
  • 创建链表而不将节点声明为指针

    我已经在谷歌和一些教科书上搜索了很长一段时间 我似乎无法理解为什么在构建链表时 节点需要是指针 例如 如果我有一个节点定义为 typedef struct Node int value struct Node next Node 为什么为了
  • 显示UnityWebRequest的进度

    我正在尝试使用下载 assetbundle统一网络请求 https docs unity3d com ScriptReference Networking UnityWebRequest GetAssetBundle html并显示进度 根
  • SolrNet连接说明

    为什么 SolrNet 连接的容器保持静态 这是一个非常大的错误 因为当我们在应用程序中向应用程序发送异步请求时 SolrNet 会表现异常 在 SolrNet 中如何避免这个问题 class P static void M string
  • 控件的命名约定[重复]

    这个问题在这里已经有答案了 Microsoft 在其网站上提供了命名指南 here http msdn microsoft com en us library xzf533w0 VS 71 aspx 我还有 框架设计指南 一书 我找不到有关
  • Windows 窗体:如果文本太长,请添加新行到标签

    我正在使用 C 有时 从网络服务返回的文本 我在标签中显示 太长 并且会在表单边缘被截断 如果标签不适合表单 是否有一种简单的方法可以在标签中添加换行符 Thanks 如果您将标签设置为autosize 它会随着您输入的任何文本自动增长 为
  • 对现有视频添加水印

    我正在寻找一种用 C 在视频上加水印的方法 就像在上面写文字一样 图片或文字标签 我该怎么做 谢谢 您可以使用 Nreco 视频转换器 代码看起来像 NReco VideoConverter FFMpegConverter wrap new
  • 通过指向其基址的指针删除 POD 对象是否安全?

    事实上 我正在考虑那些微不足道的可破坏物体 而不仅仅是POD http en wikipedia org wiki Plain old data structure 我不确定 POD 是否可以有基类 当我读到这个解释时is triviall
  • 如何在Xamarin中删除ViewTreeObserver?

    假设我需要获取并设置视图的高度 在 Android 中 众所周知 只有在绘制视图之后才能获取视图高度 如果您使用 Java 有很多答案 最著名的方法之一如下 取自这个答案 https stackoverflow com a 24035591
  • 如何在文本框中插入图像

    有没有办法在文本框中插入图像 我正在开发一个聊天应用程序 我想用图标图像更改值 等 但我找不到如何在文本框中插入图像 Thanks 如果您使用 RichTextBox 进行聊天 请查看Paste http msdn microsoft co

随机推荐

  • 卷积神经网络原理简述

    1 CNN原理 卷积神经网络主要应用在图像识别领域中 是指非某类网络的集合 其中包含了多种不同类型的结构 不同网络结构 其性能一般也会有所不同 通过对CNN几种典型架构的研究 我们可以发现这些网络创造者们极富创意 其中许多架构十分精巧 他们
  • Java从入门到实战总结-4.1、数据库基础

    Java从入门到实战总结 4 1 数据库基础 文章目录 Java从入门到实战总结 4 1 数据库基础 第一章 数据库简介 1 1 简介 1 2 常见数据库管理系统 1 3 三大范式 规范 1 4 MySQL安装和卸载 1 4 1 windo
  • 使用cisco 2500路由器实现ADSL接入

    使用cisco 2500路由器实现ADSL接入 此案例配置共分7步 第一步 配置vpdn vpdn enable 启用路由器的虚拟专用拨号网络 d vpdn group office 建立一个vpdn组 request dialin 初始化
  • 【Causality】结构因果下的反事实基本框架

    在之前 博主整理了因果关系之梯第二层 干预的定义 意义 用法 详见以下链接 但干预的目标是找到研究中处理的某个总效应或者在某些样本群体中的效应 平均因果效应 到目前为止我们无法在特定时间谈论个性化的因果关系 而在实际的任务中 我们通过训练集
  • echart 图谱_vue + echarts 实现有层级关系图的图谱

    因为接下来要做的事是一个关系图的东西 所以自己先写一个小demo 特次记录一下 主要实现的点有如下 节点的颜色的更改 自定义提示框配置 以及在里面的点击事件 提示框中的点击事件可以获取到vue实例 图列的自定义 先上效果图 截屏2020 1
  • 记录一些IDEA常用的快捷键和技巧 二(界面布局)

    创建项目 会开启一个进入默认布局界面 如下图 左边依次为 Project视图 Favorites视图以及Structure视图 其中主要关注Project视图 创建Package要注意 将project 右上角齿轮勾选 Flatten Pa
  • 小白入门级知识点:移动app安全测试怎么做?

    随着科技时代的进步和智能手机的普及 现代人离不开手机已经是常态化 一旦手机不在身边便会失去安全感 提到安全一词 我们在使用手机app软件时 安全至关重要 软件里包含的个人信息 资料等等都和安全挂钩 那么在软件测试中移动app安全测试应该怎么
  • python实现线程池

    参照c 的线程池 使用python的threading库实现线程池 import threading import time 线程池的任务 包含一个可调用对象和一个参数数组 class ThreadTask object def init
  • [uC/OS-III] 22. 互斥量

    1 互斥量的基本概念 互斥量又称互斥信号量 本质也是一种信号量 不具备传递数据功能 是一种特殊的二值信号量 它和信号量不同的是 它支持互斥量所有权 递归访问以及防止优先级翻转的特性 用于实现对临界资源的独占式处理 任意时刻互斥量的状态只有两
  • Linux常用基本命令

    目录 1 帮助命令 man 获取帮助信息 type 查看命令是内置命令还是外部命令 help 获取帮助信息 2 文件目录类 pwd 显示当前目录的绝对路径 ls 列出目录中的内容 cd 进入相对应的目录中 mkdir 创建文件夹子 rmdi
  • 安全与加密

    1 使用对称加密算法 实现敏感数据加密 1 1 什么是对称加密 Symmetric encryption
  • (Qt Installer Framework)程序简易打包教程

    Qt Installer Framework 程序简易打包教程 Qt Installer Framework程序简易打包教程 第一步下载Qt Installer Framework 第二步 打包程序安装和环境变量的配置 第三步准好要打包的程
  • C/C++中this指针作用

    this 指针是一个隐含于每一个成员函数中的特殊指针 它指向正在被该成员函数操作的那个对象 当对一个对象调用成员函数时 编译程序先将对象的地址赋给 this 指针 然后调用成员函数 每次成员函数存取数据成员时 由隐含使用 this 指针 当
  • Umi + React + Ant Design Pro 项目实践(六)—— ProLayout 应用

    打开 umirc ts 文件 import defineConfig from umi export default defineConfig plugins umijs plugins dist react query reactQuer
  • Linux增加swap空间的方法

    windows下有虚拟内存 Linux下有swap 如果在安装linux时没有分配足够的swap 可以在Linux下进行增加 具体有两种方法 1 建立一个swap分区 2 建立一个swap文件 一 建立一个swap分区 可以利用磁盘的还未分
  • 使用Torch nngraph实现LSTM

    什么是RNN RNN 多层反馈RNN Recurrent neural Network 循环神经网络 神经网络是一种节点定向连接成环的人工神经网络 这种网络的内部状态可以展示动态时序行为 不同于前馈神经网络的是 RNN可以利用它内部的记忆来
  • 数据挖掘技术(一)预处理

    1 数据预处理 数据预处理技术包括 聚集 抽样 维规约 特征子集选择 特征创建 离散化和二元化 变量变换 属性的类型 标称 定性的 值仅仅是不同的名字 即只提供足够的信息以区分对象 如雇员ID 性别 序数 定性的 值提供足够信息确定对象的序
  • 浙大超厉害计算机硕士生导师

    1 人工智能所 陈德人 教授 计算机图形学与CAD CIMS与虚拟制造 电子商务与信息集成技术 406 87952297 drchen cs zju edu cn 博导 2 人工智能所 陈刚 教授 CIMS 网络安全 协同设计 数据库 50
  • FIFO_IP核介绍和测试

    FIFO IP核介绍和测试 前言 一 简介各端口含义 二 创建同步FIFO IP核 三 FIFO IP核TB测试 四 FIFO IP核仿真结果 五 同步复位和异步复位比较 前言 FIFO 的英文全称是 First In First Out
  • 蓝桥杯C/C++省赛:买不到的数目

    目录 题目描述 思路分析 AC代码 方法一 AC代码 方法二 题目描述 小明开了一家糖果店 他别出心裁 把水果糖包成4颗一包和7颗一包的两种 糖果不能拆包卖 小朋友来买糖的时候 他就用这两种包装来组合 当然有些糖果数目是无法组合出来的 比如