2016余姚市小学组复赛试题

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2016年余姚市程序设计竞赛

小学组

(请选手务必仔细阅读本页内容)

四.注意事项

1、文件名(程序名和输入输出文件名)必须使用小写。

2、C/C++中函数main()的返回值类型必须是int,程序正常结束时的返回值必须是0。

3、评测时采用的机器配置为:CPU 2.4GHz,内存2G。

(water.pas/c/cpp)

【问题描述】

小明向小学生们发起了一个节约用水的活动,在他的鼓舞下,大家都纷纷行动起来,并且把节水成果陆续发给小明。

小明共收到了来自全国各地的N份节水成绩单,每份中都标注了该小朋友节水的天数Di和每天节水数Li。现在摆在小明面前一个头疼的问题,到底这个活动节约了多少自来水呢?请你帮他算一下吧

【输入】

第一行一个整数N,表示小明收到的节水成绩单的数量。

接下来N行,每行两个整数Di和Li,表示第i位小朋友节水天数和每天节水数量。

【输出】

输出N个小朋友共节水数量。

【样例解释】

共3位小朋友的节水成绩单,总节水量:3*4+2*1+6*3=32

【数据范围】

30%的数据,N<=3, 1<=Di<=100,1<=Li<=100.

70%的数据,N<=1000, 1<=Di<=100,1<=Li<=100

100%的数据,N<=1000000,1<=Di<=100,1<=Li<=100

(hike.pas/c/cpp)

【问题描述】

小明决定徒步完成一个N天的远足登山活动。第一天他带上一个大睡袋和足够的食物,从大本营出发。大本营的海拔高度为0,在第N天,他必须回到大本营。在这N天中,他可以在他的大睡袋和简易的帐篷中入睡。

在每天的登山活动中,他可以选择向山顶出发,也可以选择下山(同一天只能选择一种方式),而且有如下两条规则:

1、在登山过程中,他不能走的太快,海拔的升高的过程,空气的含氧量会发生变化,因此每天只能上升A米的海拔。

2、在下山过程中,他也不能走的太快,否则他的膝盖无法承受冲击。每天他只能下降B米的海拔。

例如:某天早晨小明处在470米的海拔位置,A=100且B=200,那么他在这天中可以向上到达570米的位置,也可以下山达到海拔270米的位置,因此一天结束后,他可能处在的海拔位置在270~570米之间。

现在,给定N,A和B,问小明最多能到达海拔多少米的高度。

【输入】

第一行三个整数,N,A和B,表示N天的登山远足活动,每天可以向上爬海拔A米,也可以下山下降海拔B米。

【输出】

输出一个整数,表示在第N天中能到达的最高海拔高度。

【输出输出样例1】

【样例1解释】

第一天向上爬7,第二天向上爬3到达海拔10,第三天回到大本营。

【输出输出样例2】

第一天和第二天分别向上爬40,后面3天下山分别30+30+20

【数据范围】

对于50%的数据,2<=n<=20,1<=A,B<=50

对于100%的数据,2<=n<=50,1<=A,B<=50

3.交替01串

(alter.pas/c/cpp)

【问题描述】

一个交替01串被定义为一个字符串,只有字符“0”和“1”组成,且任意相邻两个字符都是不同的。例如:”1“,”10101“,”0101010“都是交替01串

现在给定一个01字符串s,问其中最长的连续子串,是交替01串的长度是多少?

【输入】

输入共一行,一个字符串s,只有字符”0“或者”1“组成。

【输出】

输出一个整数,表示最长的交替01串长度。

最长串为“101”

【数据范围】

对于30%的数据,s的长度<=100

对于70%的数据,s的长度<=1000

对于100%的数据,s的长度<=1000000

4.回文数列

(array.pas/c/cpp)

【问题描述】

小明非常喜欢回文数列。回文数列是指一个包含N个整数的数列A,分别为A[1],A[2],……,A[n],对于第i(1<=i<=N)个数A[i],都有A[i]=A[N-i+1]。但是回文数字非常难得到。

现在小明想到了一个办法,他可以将数列中,任意两个相邻的数字合并,用它们的和来代替,合并完成的值还可以和其他值不断合并,直到只剩下一个数。要知道一个数肯定是回文数列。

当然,小明希望他的回文数列尽可能长,因此,请你帮助小明计算一下,对于一个长度为N的数列,经过最少多少次合并,可以构成一个回文数列。

【输入】

第一行一个整数N,表示数列中整数的个数。

第二行包含N个正整数,中间用空格分开,表示数列中的数字。

【输出】

输出一个最小合并次数,使得数列变成回文数列。

【输出输出样例1】

将1,2合并得到回文数列3 3

【输出输出样例2】

将2,4合并,得到回文数列1 6 6 1

【样例3解释】

先将1和4合并,得到5 3 2,再将3 2合并得到5 5是回文数列

【数据范围】

30%的数据,N<=10

60%的数据,N<=1000

100%的数据,N<=1000000,a[i]<=10^9。

相关文档
最新文档