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

Maxmilite
**搬运于
2025-08-24 21:14:33,当前版本为作者最后更新于2023-02-09 12:31:21,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
Source & Knowledge
2023 年 2 月语言月赛,由洛谷网校入门计划/基础计划提供。
文字题解
题目大意
给定一个整数 ,帮助求出一组整数 ,满足 且 。
解析
本题考察分析问题的能力和对单重循环的运用。
正如题目所言,直接输出 、、 即可通过本题。关于这组答案的合理性题目也已经给出,难点在于计算 的部分。下面给出 的计算方法。
建立一个初值为 的变量 用于存储 的结果。之后循环 枚举变量,对 中的每个整数 ,将 赋值为 。这个过程使用
for循环实现。for循环的格式为:for (起始条件; 循环能够继续的条件; 循环完成后进行变量更新的语句) { // ... }具体的控制流可以参考 https://www.runoob.com/cplusplus/cpp-for-loop.html,由于篇幅限制这里不再做过多的描述。
最后的 即为 的结果,正确性是显然的。由于计算过程中做的均为乘法运算,因此可以将 的初始值设置为 。
核心代码:
int ans = 1; for (int i = 1; i <= n; ++i) { ans *= i; }特别的,当 时,循环部分不会进行,此时 ,也是符合要求的。
最后输出 、、 即可。
视频题解
完整代码请在视频中查看。
补充内容
以下内容可能会用到一些初高中数学知识,完成本题不需要以下内容,可以选择性阅读。
实际上初始题目并没有给出构造方案,后来受到了难度限制,因此给出了一组构造方案。
下面来解析一下如何得出本题的构造方案。
首先给出两条引理,用于对后面的构造方案进行解释。
引理 1:对于一个满足条件的整数三元组 ,通过 可以确定唯一的 与之对应。
证明:
因为整数三元组 满足上述条件,所以 ,即 。
即 。
显然,接下来 。
证毕。
引理 2:在 的情况下,一个整数三元组 满足上述条件的充要条件为 是 的因数。
证明:
由引理 1,当 时,,。此时由于 ,,那么我们就可以保证 。如果此时 都是整数,那么这个整数三元组就符合题面要求的所有约束。
考虑如何保证 都是整数。不难发现如果 是整数, 则一定是整数。因此考虑 的问题。
注意到导致 不是整数的唯一因素是分母 。因此如果想让 是整数,只要保证 可以整除 即可。
又 (易证,如果 是 和 的因数,那么 就是 的因数,所以 只能是 ),所以如果 可以整除 ,则只可能为 是 的因数。
对充分性,如果 是 的因数,那么 就是非负整数, 同样也是整数。且由引理 1,如果三元组合法,那么当 确定时,对应的 是唯一的。因此一个整数三元组 可以满足上述条件。
证毕。
因此,我们只需要找到 的一个因数,将其 后作为 ,计算出 , 即可。由上面的引理,这样的解总是存在的。
显然 一定是 的因数。所以可以令 ,这时 ,。这也是题目中构造方案的来源。
- 1
信息
- ID
- 8292
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 2
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者