2024年5月4日发(作者:)
2021CCF非专业级软件能力认证
CSP-J/S2021第二轮认证
入门组
时间:2021年10月23日08:30∼12:00
题目名称
题目类型
目录
可执行文件名
输入文件名
输出文件名
每个测试点时限
内存限制
子任务数目
测试点是否等分
分糖果
传统型
candy
candy
1.0秒
512MiB
10
否
插入排序
传统型
sort
sort
1.0秒
512MiB
25
是
网络连接
传统型
network
network
1.0秒
512MiB
20
是
小熊的果篮
传统型
fruit
fruit
1.0秒
512MiB
10
是
提交源程序文件名
对于C++语言
对于C语言
对于Pascal语言
编译选项
对于C++语言
对于C语言
对于Pascal语言
‐O2‐lm
‐O2‐lm
‐O2
candy.c
sort.c
network.c
fruit.c
注
.
意
.
事
.
项(
.
请
.
仔
.
细
.
阅
.
读)
.
1.文件名(程序名和输入输出文件名)必须使用英文小写。
2.C/C++中函数main()的返回值类型必须是int,程序正常结束时的返回值必须
是0。
3.提交的程序代码文件的放置位置请参考各省的具体要求。
4.因违反以上三点而出现的错误或问题,申述时一律不予受理。
5.若无特殊说明,结果的比较方式为全文比较(过滤行末空格及文末回车)。
6.程序可使用的栈空间内存限制与题目的内存限制一致。
7.全国统一评测时采用的机器配置为:Inter(R)Core(TM)i7-8700KCPU@3.70GHz,
内存32GB。上述时限以此配置为准。
2021CCF非专业级软件能力认证CSP-J/S2021第二轮认证
8.只提供Linux格式附加样例文件。
9.评测在当前最新公布的NOILinux下进行,各语言的编译器版本以此为准。
第2页共14页
2021CCF非专业级软件能力认证CSP-J/S2021第二轮认证
分糖果(candy)
分糖果(candy)
【题目背景】
红太阳幼儿园的小朋友们开始分糖果啦!
【题目描述】
红太阳幼儿园有n个小朋友,你是其中之一。保证n≥2。
有一天你在幼儿园的后花园里发现无穷多颗糖果,你打算拿一些糖果回去分给幼儿
园的小朋友们。
由于你只是个平平无奇的幼儿园小朋友,所以你的体力有限,至多只能拿R块糖
回去。
但是拿的太少不够分的,所以你至少要拿L块糖回去。保证n≤L≤R。
也就是说,如果你拿了k块糖,那么你需要保证L≤k≤R。
如果你拿了k块糖,你将把这k块糖放到篮子里,并要求大家按照如下方案分糖
果:只要篮子里有不
.
少
.
于
.
n块糖果,幼儿园的所有n个小朋友(包括你自己)都从篮子
中拿走恰
.
好
.
一块糖,直到篮子里的糖数量少
.
于
.
n块。此时篮子里剩余的糖果均归你所有
——这些糖果是作
.
为
.
你
.
搬
.
糖
.
果
.
的
.
奖
.
励
.
。
作为幼儿园高质量小朋友,你希望让作
.
为
.
你
.
搬
.
糖
.
果
.
的
.
奖
.
励
.
的糖果数量(而
.
不
.
是
.
你
.
最
.
后
.
获
.
得
.
的
.
总
.
糖
.
果
.
数
.
量!
.
)尽可能多;因此你需要写一个程序,依次输入n,L,R,并输出
出你最多能获得多少作
.
为
.
你
.
搬
.
糖
.
果
.
的
.
奖
.
励
.
的糖果数量。
【输入格式】
从文件中读入数据。
输入一行,包含三个正整数n,L,R,分别表示小朋友的个数、糖果数量的下界和上
界。
【输出格式】
输出到文件中。
输出一行一个整数,表示你最多能获得的作
.
为
.
你
.
搬
.
糖
.
果
.
的
.
奖
.
励
.
的糖果数量。
【样例1输入】
1
71623
第3页共14页
2021CCF非专业级软件能力认证CSP-J/S2021第二轮认证
分糖果(candy)
【样例1输出】
1
6
【样例1解释】
拿k=20块糖放入篮子里。
篮子里现在糖果数20≥n=7,因此所有小朋友获得一块糖;
篮子里现在糖果数变成13≥n=7,因此所有小朋友获得一块糖;
篮子里现在糖果数变成6 . 为 . 你 . 搬 . 糖 . 果 . 的 . 奖 . 励 . 。 容易发现,你获得的作 . 为 . 你 . 搬 . 糖 . 果 . 的 . 奖 . 励 . 的糖果数量不可能超过6块(不然,篮子 里的糖果数量最后仍然不少于n,需要继续每个小朋友拿一块),因此答案是6。 【样例2输入】 1 101418 【样例2输出】 1 8 【样例2解释】 容易发现,当你拿的糖数量k满足14=L≤k≤R=18时,所有小朋友获得一块 糖后,剩下的k−10块糖总是作 . 为 . 你 . 搬 . 糖 . 果 . 的 . 奖 . 励 . 的糖果数量,因此拿k=18块是最 优解,答案是8。 【样例3】 见选手目录下的candy/与candy/。 第4页共14页 2021CCF非专业级软件能力认证CSP-J/S2021第二轮认证 分糖果(candy) 【数据范围】 测试点 1 2 3 4 5 6 7 8 9 10 对于所有数据,保证2≤n≤L≤R≤10 9 。 10 9 n≤ 2 5 10 3 10 5 10 3 10 5 10 9 R≤ 5 10 10 3 10 5 R−L≤ 5 10 10 3 10 5 0 10 3 10 5 10 9 第5页共14页 2021CCF非专业级软件能力认证CSP-J/S2021第二轮认证 插入排序(sort) 插入排序(sort) 【题目描述】 插入排序是一种非常常见且简单的排序算法。小Z是一名大一的新生,今天H老 师刚刚在上课的时候讲了插入排序算法。 假设比较两个元素的时间为O(1),则插入排序可以以O(n 2 )的时间复杂度完成长 度为n的数组的排序。不妨假设这n个数字分别存储在a 1 ,a 2 ,···,a n 之中,则如下伪 代码给出了插入排序算法的一种最简单的实现方式: 这下面是C/C++的示范代码 1 2 3 4 5 6 7 for(inti=1;i<=n;i++) for(intj=i;j>=2;j‐‐) if(a[j] intt=a[j‐1]; a[j‐1]=a[j]; a[j]=t; } 这下面是Pascal的示范代码 1 2 3 4 5 6 7 8 fori:=1tondo forj:=idownto2do
发布评论