包子凑数——蓝桥杯真题Python

devtools/2025/3/1 14:47:00/

包子凑数

在这里插入图片描述

输入输出样例
示例 1

输入

2
4
5

输出

6

样例说明

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

示例 2

输入

2
4
6

输出

INF

样例说明

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

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

最大公约数

最大公约数:Greatest Common Divisor,GCD,指两个或多个整数共有约数中的最大值。

计算方法:

  1. 质因数分解法:将各数分解为质因数,取共有质因数的最小幂次乘积。

    例如,求36和48的GCD:

    36=2^2 * 32,48=24 * 3^1

    GCD=22*31=12

  2. 辗转相除法(欧几里得算法):基于定理 gcd (a,b)=gcd (b,a mod b),迭代至余数为零。

    例如,求 1071 和 462 的 GCD:

    1071 ÷ 462 = 2(余 147)→ gcd (462,147)

    462 ÷ 147 = 3(余 21)→ gcd (147,21)

    147 ÷ 21 = 7(余 0)→ GCD 为 21

裴蜀定理
  1. 定理内容:对于多个整数,若其GCD为d,则它们线性组合的所有可能结果均为d的倍数。
  2. 无限不可凑数判定:若所有整数的GCD大于1,则只能凑出d的倍数,此时就有无限多 无法凑出的数目,如GCD=2,那么所有的奇数都无法凑出。
  3. 有限不可凑数判定:若GCD为1,则存在一个最大不可凑数M,超过M的所有数均可被凑出,
解题步骤
  1. 首先输入n和数组A
  2. 情况一:若数组A中包含1,那么说明任何数都能凑,打印0.
  3. 情况二:GCD!=1,则说明有无数个无法凑出的数,打印INF。
  4. 情况三:GCD==1,则进入动态规划步骤。
python">import math
def main():n = int(input())A = [[int(input())] for _ in range(n)]if 1 in A:print("0")returng = A[0]for a in A:g = math.gcd(a,g)if g != 1 :print("INF")returnelse :maxSize = 10000dp = [False] * (maxSize + 1)dp[0] = Truefor i in range(1, maxSize+1):if dp[i]:for a in A:if i+a < maxSize+1:dp[i+a] = Trueresult = 0for i in dp:if i == False:result += 1print(result)returnif __name__ == "__main__":main()

http://www.ppmy.cn/devtools/163651.html

相关文章

RustDesk搭建公网中继服务器远控内网机器(完整版)

前情提要&#xff1a;最近要在学校实验室的服务器&#xff08;ubuntu&#xff09;上做实验&#xff0c;但是服务器在校园网里面&#xff0c;在外面的时候没法远控&#xff0c;todesk有时候有点卡顿&#xff0c;所以想试着用rustdesk进行远程控制。 参考博客&#xff1a; 官方…

网络安全导论PDF

&#x1f345; 点击文末小卡片 &#xff0c;免费获取网络安全全套资料&#xff0c;资料在手&#xff0c;涨薪更快 这份重点是在准备复试时边看书和ppt边手打的。掐指一算已经是整整一个月前的事情惹。 这本教材是哈工程复试参考书目&#xff0c;但是网络上关于它的材料比较少。…

【Uniapp-Vue3】在uniapp中使用pinia的基本用法

引入pinia&#xff1a; 在main.js中对pinia进行引入&#xff0c;使用和导出 import * as Pinia from pinia; // 引入pinia app.use(Pinia.createPinia()); // 使用pinia 在项目根目录下创建一个stores文件夹&#xff0c;里面创建一个counter.js文件 我们在counter.js中定义…

DevSecOps普及:安全与开发运维的深度融合

一、引言 随着软件开发模式的演进&#xff0c;DevOps已成为现代软件工程的主流实践。然而&#xff0c;在传统的DevOps流程中&#xff0c;安全往往被视为开发和运维之外的额外环节&#xff0c;导致安全漏洞在产品交付后才被发现&#xff0c;增加了修复成本和风险。为了解决这一…

本地部署deepseek大模型后使用c# winform调用(可离线)

介于最近deepseek的大火&#xff0c;我就在想能不能用winform也玩一玩本地部署&#xff0c;于是经过查阅资料&#xff0c;然后了解到ollama部署deepseek,最后用ollama sharp NUGet包来实现winform调用ollama 部署的deepseek。 本项目使用Vs2022和.net 8.0开发&#xff0c;ollam…

网站被sweet32攻击 漏洞修复

网站被Sweet32攻击&#xff0c;可以采取以下方式&#xff1a;1. 避免使用存在安全缺陷的DES/3DES密码算法。2. 禁用弱密码套件。 免费漏洞检测网址&#xff1a;Qualys SSL Labs 我的服务器是 winserver 2016 sql server2014 挂的iis 没有nginx 禁用一些加密算法即可…

网络原理--TCP的特性

TCP报文的结构&#xff1a; TCP的报头前20字节是固定长度&#xff0c;也可以通过“选项”来增加。 一、用来确保可靠性&#xff0c;最核心的机制&#xff0c;称为“确认应答” 引入一个情景&#xff1a; A向B询问cat和dog的意思&#xff1a; 这种情况是理想情况&#xff0c;…

2-1文件描述符

文章目录 1 虚拟地址空间1.1 为什么需要虚拟内存而不是直接加载进物理内存1.2 分区 2 文件描述符1.1 文件描述符表file 1 虚拟地址空间 可以用来加载程序数据对应一段连续的内存地址&#xff0c;其实位置为0这个内存地址是虚拟的&#xff0c;并不是物理内存的0地址 当运行磁盘…