1 条题解
-
0
自动搬运
来自洛谷,原作者为

_rqy
**搬运于
2025-08-24 21:41:00,当前版本为作者最后更新于2019-07-09 11:30:51,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
这题题解竟然一个证明正确的都没有...
许多题解考虑类似小凯的疑惑使用 的结论,然而这个结论只在 时适用。注意到所有数的 为 不意味着存在两个数互质(比如 ),因此这个结论是不能直接套的。
考虑确定一个最大的不能被表示出来的数(如果存在)的上界。
如果所有的数的 不为 ,那么显然是不存在最大的不能表示出来的数的(任取一个不被 整除的数都不能被凑出来)。
设输入的所有数为 ,可以发现如果一个数 能凑出来,那么 也能凑出来;反过来说如果 不能凑出来,那么 也显然不能凑出来。
这样的话,对于任意的 ,一定存在一个数 ,使得 , 能被凑出来但是 不能(换句话说, 就是 里面第一个能被凑出来的数)。
由于所有数的 是 ,所以对于任意一个数 都能找到一串 使得 ,所以一定有 。取其中最短的( 最小的)一串 ,我们来证明 。
如果 ,令 即这一串 的前缀和,那么 ,因此 只有 中取值方式。根据鸽巢原理, 中必定有两个相等,记为 ,那么将 从这一串 中去掉,可以发现剩下的 的和仍然 ,与我们选择了最小的 不符。
因此 ,$f_i\leq a_{k_1}+\dots+a_{k_p}\leq p\times\max{a}\leq (a_1-1)\times\max{a}$。
如果 是某个不能凑出来的数,那么显然 $t\leq f_{t\bmod a_1}-a_1\leq (a_1-1)\times\max{a}-a_1$,于是 的上界不超过 。
接下来就可以直接背包计算这个上界以下所有的数能不能被凑出来了。代码十分简单,就不贴了qaq。
- 1
信息
- ID
- 1766
- 时间
- 1000ms
- 内存
- 125MiB
- 难度
- 4
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者