20 2 0 年 CCF 非专业级软件能力认证
入门级 第二轮
2020 CCF CSP -J2
时间: 20 20 年 11 月 7 日 08: 30 ∼ 12:00
题目名称 优秀的 拆分 直播 获奖 表达式 方格 取数
题目类型 传统 型 传统 型 传统 型 传统 型
目录 power live expr number
可执行文件名 power live expr number
输入文件名 power .in live .in expr .in number .in
输出文件名 power .out live .out expr .out numbe r.out
时间 限制 1.0 秒 1.0 秒 1.0 秒 1.0 秒
内存限制 256 M B 256 M B 256 M B 256 M B
测试点 数目 20 20 20 20
提交源程序文件名
C++ 语言 power .cpp live .cpp expr .cpp number .cpp
C 语言 power. c live .c expr .c number .c
Pascal 语言 power. pas live .pas expr .pas number .pas
编译选项
C++ 语言 -lm
C 语言 -lm
Pasca l语言
注意事项 ( 请 选手 仔细 阅读)
1. 文件名(程序名和输入输出文件名)必须使用英文小写。
2. C/C++ 中函数 main() 的返回值类型必须 是 int ,程序正常结束时的返回值
必须是 0。
3. 提交的程序代码文件的放置位置请参照各省的具体要求。
4. 因违反以上三点而出现的错误或问题,申诉时一律不予受理。
5. 若无特殊说明,结果的比较方式为全文比较(过滤行末空格及文末回车)。
6. 程序可使用的栈内存空间限制与题目的内存限制一致。
7. 全国统一评测时采用的机器配置为: Intel(R) Core(TM) i7 -8700 K CPU @
3.70GHz ,内存 32GB 。上述时限以此配置为准。
8. 只提供 Linux 格式附加样例文件。
9. 评测在当前最新公布的 NOI Linux 下进行,各语言的编译器版本以其为准。
2020 年 CCF 非专业级 软件 能力 认证 入门组 第二轮
优秀 的 拆分 ( power )
【题目描述】
一般来说,一个正整数可以拆分成若干个正整数的和。例如 , 1 = 1, 10 =
1+ 2+ 3+ 4 等。
对于 正 整数 � 的一种特定拆分,我们称它为 “优秀的 ”,当且仅当在这种拆
分下, � 被分解为了若干个 不同 的 2 的 正整数 次幂。注意, 一个数 � 能被表
示成 2 的正整数次幂,当且仅当 � 能通过 正整数 个 2 相乘在一起得到。
例如, 10 = 8+ 2 = 23+ 21 是一个优秀的拆分。但是, 7 = 4+ 2+ 1=
22+ 21+ 20 就不是一个优秀的拆分,因为 1 不是 2 的正整数次幂。
现在,给定 正整数 �,你需要判断这个数的所有拆分中,是否存在优秀的
拆分。 若 存在, 请你 给出 具体 的 拆分 方案。
【 输入格式 】
输入文件名为 power.in 。
输入文件只有一行,一个正整数 �,代表需要判断的数。
【 输出格式 】
输出文件名为 power.out 。
如果这个数的所有拆分中,存 在优秀的拆分。那么, 你 需要 从大到小 输出
这个拆分中的每一个数, 相邻 两个数之间用一个空格隔开。 可以 证明, 在 规定
了 拆分 数字 的 顺序 后, 该 拆分 方案 是 唯一 的。
若 不存在 优秀 的 拆分 ,输出“ -1”(不包含双引号)。
【样例 1 输入】
6
【样例 1 输出】
4 2
【样例 1 解释 】
6 = 4+ 2 = 22+ 21 是一个 优秀的拆分。注意, 6= 2+ 2+ 2 不是一个优
秀的拆分,因为拆分成的 3 个数不满足每个数互不相同。
【样例 2 输入】
7
2020 年 CCF 非专业级 软件 能力 认证 入门组 第二轮
【样例 2 输出】
-1
【样例 3】
见 选手 目录下的 power /power 3.in 与 power /power 3.ans 。
【 数据范围与提示 】
对于 20% 的数据, �≤ 10 。
对于另外 20% 的数据,保证 � 为奇数。
对于另外 20% 的数据,保证 � 为 2 的正整数次幂。
对于 80% 的数据, �≤ 1024 。
对于 100% 的数据, 1≤ �≤ 1× 10 7。
2020 年 CCF 非专业级 软件 能力 认证 入门组 第二轮
直播 获奖 ( live )
【题目描述】
NOI2 130 即将举行。为了增加观赏性, CCF 决定逐一评出每个选手的成
绩,并直播即时的获奖分数线 。 本次 竞 赛 的 获奖率 为 �% , 即当前排名前 �%
的 选手的最低成绩 就是 即时 的 分数线 。
更具体 地 , 若 当前 已 评出 了 � 个 选手 的 成绩, 则 当前 计划获奖人数为
max (1,⌊�× �% ⌋), 其 中 � 是获奖百分比, ⌊�⌋ 表示 对 � 向下取整 ,
max (�,�) 表 示 � 和 � 中较大的数。如有 选手 成绩 相同 ,则所有 成绩
2020年信息学奥赛CSP-J2入门级复赛C++真题