宁波市江北区中小学生计算机程序设计竞赛
复赛试题
题目一览
试题名称
整点报时
求和问题
吃水果问题
整除问题
这是一道动规题
英文代号
time
sum
eat
battle
seq
程序名
sum.pas/c/cpp
sum.pas/c/cpp
eat.pas/c/cpp
battle.pas/c/cpp
seq.pas/c/cpp
输入文件名
time.in
sum.in
eat.in
battle.in
seq.in
输出文件名
time.out
sum.out
eat.out
battle.out
seq.out
内存限制
128m
128m
128m
128m
128m
时限
1s
1s
1s
1s
1s
注意:
一、 关于竞赛中编程语言使用的规定参照中国计算机学会公布的《关于NOI系列赛编程语言使用限制的规定》。
二、 评测环境为windows

1.整点报时
(time.pas/c/cpp)
【题目描述】
    现在智能手机中都有闹钟程序,经过设置,它可以实现整点报时,发出若干个”di”的声音,请用程序来模拟这一现象。
【输入】
    一个整数n
【输出】 
    只有一行,用n”di”来表示,之间有一个空格。
【样例输入】
  3
【样例输出】
di di di
【数据规模】
对于100%的数据,1<=n<=24
2.求和问题
(sum.pas/c/cpp)
【题目描述】
给定1nn个数,你需要出连续的几个数使得其和为m,显然这样的方案有很多,请将每种方案都输出,输出方法请参考样例。
【输入】
第一行两个整数nm
【输出】 
输出有多行,每行表示一种合法的方案,采用闭区间的方式给出方案([a,b]表示ab这几个连续的整数),当有多种方案时按照a由小到大输出。
【样例输入】
20 15
【样例输出】
[1,5]
[4,6]
[7,8]
[15,15]
【样例说明】
1+2+3+4+5 = 15
4+5+6 = 15
7+8 = 15
15 = 15
【数据规模】
对于30%的数据,n,m<=100
对于60%的数据,n,m<=1000000
对于100%的数据,n,m<=10^12
3.吃水果问题
(eat.pas/c/cpp)
【题目描述】
老李非常关注小李的饮食问题,给他制定了一长串吃水果清单。但是小李非常淘气,如果相邻两天吃的水果一样的话,他将会变得非常暴躁,精通编程的你能否帮助老李同志,判断是否存可以将老李的方案修改成让小李不暴躁。
【输入】
第一行,一个整数case,表示测试组数
对于每组测试数据:第一行,一个整数n,表示吃水果天数。
第二行,共n个空格隔开的数字ai,表示每天吃的水果编号。
【输出】 
输出共case行,对于每一组测试数据如果存在方案输出Y否则输出N
【样例输入】
2
6
1 2 4 2 2 4
5
1 1 1 2 1
【样例输出】
Y
N
【样例说明】
    样例1存在1 2 4 2 4 2,样例2不存在。
【数据规模】
case<=1001<=ai<=n
对于40%的数据,1<=n<=8
对于70%宁波学编程哪里好的数据,1<=n<=1000
对于100%的数据,1<=n<=10000

4.整除问题
(battle.pas/c/cpp)
【题目描述】
给定n个正整数a1,a2,…,ai,…,an,如果存在一个aj(1<=j<=n,i不等于j)使得aj除以ai的余数为0,那么你将获得分数j,当有存在多个aj时,我们取获得分数最多的aj,计算每个ai获得的分数,请问最后你将获得多少分数。
【输入】
第一行n,表示共有n个数。
第二行共n个用空格隔开的整数。
【输出】 
仅一个整数,表示能获得的最多的分数
【样例输入】
4
3 6 2 8
【样例输出】
6
【样例说明】
3获得的分数为2,6获得的分数为0,2获得的分数为4,8获得的分数为0
2+0+4+0=6
【数据规模】
对于40%的数据,n<=1000
对于80%的数据,n<=100000,其中20%数据ai<=50
对于100%的数据,n<=5000000 ai<=200000