思路是对数组排序
设
- S[i]S[i]S[i] 是数组的前缀和
- R[i]R[i]R[i] 是递增排序后的数组
遍历数组,如果出现S[i−1]+1<R[i]S[i - 1] + 1 < R[i]S[i−1]+1<R[i],就代表S[i - 1] + 1是不能被合成出来的数字
因为:
假设 [1,i - 1]能表示1~X,那么加入R[i]R[i]R[i]的后,能表示[1,(X+R[i])][1,(X+R[i])][1,(X+R[i])]的数字
排序过后的枚举是为了依次找到最小的几个数字。
思路是对数组排序
设
遍历数组,如果出现S[i−1]+1<R[i]S[i - 1] + 1 < R[i]S[i−1]+1<R[i],就代表S[i - 1] + 1是不能被合成出来的数字
因为:
假设 [1,i - 1]能表示1~X,那么加入R[i]R[i]R[i]的后,能表示[1,(X+R[i])][1,(X+R[i])][1,(X+R[i])]的数字
排序过后的枚举是为了依次找到最小的几个数字。
365
1009

被折叠的 条评论
为什么被折叠?