问题类型
- 给定 个整数, 求这些整数可以拼凑出多少的其他整数 ( 个整数可以重复选择)
- 给定 个整数, 求这些整数不能拼凑出的最小 / 最大的整数
- 至少要拼凑几次才能拼出 的数
问题求解方案
选择这个整数集合 中最小的正整数 , 定义一个数组为 , 表示这些数可以拼凑出的 的最小数
由于本身 就在集合 中,所以就可以得到 的任何数
转化为图论(最短路求解)模型
迪杰斯特拉, 对于当前最小的 去遍历一遍 , 尝试更新 , 知道无法在再有新的更新为止
求答案注意点
对于问题类型
2中的最大为
最小为:
如果集合中存在1, 那么不存在最小
如果不存在1, 那么答案就是最小