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

EuphoricStar
Remember.搬运于
2025-08-24 22:31:22,当前版本为作者最后更新于2021-05-12 21:44:14,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
思路
一道简单的数论(?
考虑和最小的情况:选择 到 之间的所有整数,将这个和记为 。
接下来考虑和最大的情况:选择 到 之间的所有整数,将这个和记为 。
那么在 到 之间选择 个整数,它们的和的上界是 ,下界是 。
可以这样理解:
当 时,选出的数的集合如下:
此时和为 。
接下来让最大的数增加 ,变成 ,此时和为 。
再让最大的数增加 ,变成 ,此时和为 。
此时最大的数已经无法增加了,那我们让次大的数增加 ,此时集合为 ,和为 。
......
一直这样下去,可以发现在 区间内的整数都可以用在 区间内的不同的 个整数的和表示。
接下来就好办了。如果 且 ,那么输出
Yes,否则输出No。坑点:
- 开
long long - 没了
求 可以用等差数列公式:
代码
if (k * (k + 1) / 2 > s || (n + n - k + 1) * k / 2 < s) { puts("No"); } else { puts("Yes"); } - 开
- 1
信息
- ID
- 6467
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 1
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者