题意
给 n(1≤n≤100) 个数(1≤ai≤100),问由它们不能组合(加法)成的数(正整数)的个数,若有无穷个输出”INF”。
题解
若它们的公共 gcd 不为1,输出 INF,构造一个小顶堆,每次新加的值为堆顶的值加ai ,弹出堆顶,可证最大不可表示的值不会超过1e4,所以当堆顶大于1e4的时候跳出循环。
代码
1 |
|
给 n(1≤n≤100) 个数(1≤ai≤100),问由它们不能组合(加法)成的数(正整数)的个数,若有无穷个输出”INF”。
若它们的公共 gcd 不为1,输出 INF,构造一个小顶堆,每次新加的值为堆顶的值加ai ,弹出堆顶,可证最大不可表示的值不会超过1e4,所以当堆顶大于1e4的时候跳出循环。
1 | #include <bits/stdc++.h> |