本文共 919 字,大约阅读时间需要 3 分钟。
为了解决这个问题,我们需要找出包子大叔无法凑出的包子数量。如果这些数量有无限多个,则输出INF;否则,输出具体数量。
问题分析:
关键思路:
算法选择与优化:
def gcd(a, b): while b != 0: a, b = b, a % b return aN = int(input())baozi = [int(input()) for _ in range(N)]g = baozi[0]for num in baozi[1:]: g = gcd(g, num)if g != 1: print("INF")else: max_size = 100001 dp = [0] * max_size dp[0] = 1 for num in baozi: for j in range(max_size - num): if dp[j]: dp[j + num] = 1 res = sum(1 for x in dp if x == 0) print(res) 计算最大公约数:
动态规划初始化:
更新dp数组:
统计结果:
通过以上方法,我们可以高效地解决问题并输出结果。
转载地址:http://dbwg.baihongyu.com/