绍兴市第十六届少儿信息学竞赛复赛试题
(考试时间:150分钟)
一、题目一览
中文题目名称 | 拳王争霸 | 最佳时间 | 有趣的数学 | 编程机器人 |
英文题目名称 | king | time | math | robot |
输入文件名 | king.in | time.in | math.in | robot.in |
输出文件名 | king.out | time.out | math.out | robot.out |
每个测试点时限 | 1秒 | 1秒 | 1秒 | 1秒 |
测试点数目 | 10 | 10 | 10 | 10 |
每个测试点分值 | 10 | 10 | 10 | 10 |
二、比赛目录结构示例
选手比赛时,需在本机为每题建立对应的题目目录,目录名称与英文题目名称相同。选手根
据题目要求,将自己提交的源程序,放在该题的题目目录下。
每位选手把自己提交的源程序连同要求的目录结构,存入D盘根目录中。(只递交源程序,测试时以源程序为准)
例如:假设试卷中有cashier、dune、manhattan三题,选手sx001分别使用C、Pascal、C++答题,其最终提交的文件为cashier.c、dune.pas、manhattan.cpp,则该选手提交的目录结构如下所示:
|---sx001/
|---cashier/
|---cashier.c
|---dune/
|---dune.pas
|---manhattan/
|---manhattan.cpp
三、特别提醒
1、务必看清题目,严格按照试题所要求的格式输入、输出。
2、比赛开始前应先检查本机能否正常使用,如有问题可向监考老师提出。比赛结束后应及时离开机房,但注意不要关机。
1、拳王争霸(king.pas/c/cpp)
【问题描述】
泽泽的爱好非常广泛,拳击比赛是他的爱好之一。电视里正在播放拳王争霸赛,n个人排成一排,他们进行拳击比赛,先让最前面两个人进行比赛,赢的人再和下面一个人比赛,输的人排到队伍的末尾。每一次比赛的结果是由比赛的两个人的能量确定,能量大的人胜(注:保证所有人的能量都不同,假设所有人的能量能瞬间恢复,精力一直是旺盛的)。大赛规定:只要能连续获胜 k 场的人将成为“拳王”。
【输入】
第一行输入两个整数 n 和 k , 分别表示总人数和需要连续获胜的次数。
第二行有 n 个整数, A_1, A_2,..., A_n (1<=A_i<=n),分别表示每个人的能量。
第二行有 n 个整数, A_1, A_2,..., A_n (1<=A_i<=n),分别表示每个人的能量。
【输出】
输出一个整数,就是 “拳王”的能量。
【输入输出样例】
样例输入1 | 样例输入2 | 样例输入3 |
2 2 1 2 | 4 2 3 2 1 4 | 2 10000000000 2 1 |
样例输出1 | 样例输出2 | 样例输出3 |
2 | 3 | 2 |
【样例2解释】
有4个人参赛,只要能按比赛规定连续获得2次胜利,那个人就是拳王。
第1个人的能量是3,他先跟能量1打,能量3获得胜利,能量1排到队伍的末尾。能量3再跟能量2打,能量3继续获胜。 他连续两次获胜,所以他成为“拳王”。
【数据范围约定】
对于50%的数据,保证2<=k<=n。
对于100%的数据,保证 2<=n<=500,2<=k<=1000000000000。
2、最佳时间(time.pas/c/cpp)
【问题描述】
泽泽不但喜欢看拳击比赛,而且也喜欢下围棋和编程,所以他决定参加围棋和编程兴趣班。
围棋兴趣班共有n个时间段选择,第i 个时间段排在(Li ~ Ri)。编程兴趣班也有m个时间
段选择,第i 个时间段排在(Ai ~ Bi)。他必须要选择一个围棋班和一个编程班的时间段,但他希望选的这两个班中间的休息时间越长越好。
例如,他选了这两个时间段(L1 ~ R1)和(A1 ~ B1),假设(L1 ~ R1)这节课在前面,(A1 ~ B1)这节课在后面,那么,泽泽在中间休息的时间是A1-R1。特别说明,当两节课上课时间有冲突,泽泽在中间休息时间为 0。
泽泽想算一算他所选的两节兴趣课之间,能休息的时间最长是多少?请你帮助泽泽一,算一算。
【输入】
第一行输入一个整数n,表示围棋兴趣班可选择的时间段。
下列n行,每行都输入两个整数Li和Ri ,分别表示泽泽参加第i个围棋班的起止时间。
下面一行输入的一个整数m,表示编程兴趣班可选择的时间段。
下列m行,每行都输入两个整数Ai和Bi ,分别表示泽泽参加第i个编程班的起止时间。
【输出】
输出一个整数,表示两个时间段之间的最长休息时间(如果所有时间段都有冲突,则输出0)。
【输入输出样例】
样例输入1 | 样例输入2 |
3 1 5 2 6 2 3 2 2 4 6 8 | 3 1 5 2 6 3 7 2 2 4 1 4 |
样例输出1 | 样例输出2 |
3 | 0 |
【样例解释】
样例1,泽泽可以在这段时间(2,3)参加围棋班,并在另一段时间(6,8)参加编程班。不难算出,在这种情况下,他中间休息的时间是最长的6-3=3。
样例2,他选择任何一段时间,两个兴趣班上课的时间都有冲突,所以答案是0。
【数据范围约定】
对于60%的数据,保证1≤n≤10000,1≤m≤10000
对于100%的数据,保证1≤n≤200000,1≤m≤200000 ,1≤Li≤Ri≤1000000000,1≤Ai≤Bi≤1000000000
3、有趣的数学 (math.pas/c/cpp)
【问题描述】
自从泽泽参加了围棋班和编程班以后,不仅思维非常敏捷,而且有些难懂的数学问题他都
能轻松解答,他爱上了数学。老师为了锻炼他,让他的思维能有突飞猛进的进步,给了他这样一题数学题:给你一个正整数N,请你出N是由哪些若干个(两个或多个)连续的正整数的和得到。
【输入】
第一行输入一个正整数N。
【输出】
输出至少有一个答案,每个答案一行,每行输出这个答案中的第一个加数和最后一个加数。如果有多个答案,这些答案必须按第一个加数从小到大进行排列。(注:两个加数之间只有一个空格)
【输入输出样例】
样例输入1 | 样例输出1 |
6 | 1 3 |
样例输入2 | 样例输出2 |
27 | 2 7 8 10 少儿编程班揭秘13 14 |
【样例解释】
样例1说明:6=1+2+3, 第一个加数是1,最后一个加数是3, 输出1 3
样例2说明:27=2+3+4+5+6+7,第一个加数是2,最后一个加数是7, 输出2 7
27=8+9+10, 第一个加数是8,最后一个加数是10, 输出8 10
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论