原创

一维动态规划解决完全背包问题--包子凑数


包子凑数

给出 N 个数 Ai,求有多少个数不能通过这些数凑出

输入格式
第一行包含一个整数 N

接下来 N 行,每行包含一个整数 Ai

输出格式
输出一个整数代表答案。

如果凑不出的数目有无限多个,输出INF

数据范围

1≤N≤100,
1≤Ai≤100

输入样例1:

2
4
5

输出样例1:

6

输入样例2:

2
4
6

输出样例2:

INF

样例解释

对于样例1,凑不出的数目包括:
1,2,3,6,7,11
对于样例2,所有奇数都凑不出来,所以有无限多个。

解题思路

数论,完全背包变形
结论:对于两个互斥的数 a,b,其不能凑出的最大的数为 (a−1)×(b−1)−1

99 和 98是 100 内最大的互斥的两个数可以考虑最大的数取 10000,由于再有更多的数的话可选择的数更多,最大的数可能还不止10000,同时,如果 n 个的数的最大公约数不为 1,则其凑不出来的数有无限个,因为这些数可以约数不为该最大公约数如果n中不存在两个互斥数呢?,在 100 范围内这样的情况很难出现,且题目应该是保证有解的,所以这种情况可以忽略

查看代码请点击此处

蓝桥杯
作者: nikonikoni
发表时间: 2023-11-21 10:08
版权声名: 转载请标明源地址
最新内容: 请添加右侧二维码

评论区