第八届绍兴市少儿信息学竞赛复赛试题及答案

更新时间:2023-10-11 11:05:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第八届绍兴市少儿信息学竞赛复赛

第八届绍兴市少儿信息学竞赛复赛试题

(2010年11月27日 下午1:30-4:00)

一、题目概览

中文题目名称 英文题目名称 输入文件名 输出文件名 每个测试点时限 测试点数目 每个测试点分值 采花生 chs chs.in chs.out 1秒 10 10 奶牛塔 nnt nnt.in nnt.out 1秒 10 10 贝茜式乘法 cheng cheng.in cheng.out 1秒 10 10 数字蜂房 bee bee.in bee.out 1秒 10 10 二、提交源程序文件名

对于pascal语言 chs.pas nnt.pas cheng.pas bee.pas 三、比赛目录结构示例

选手比赛时,需在本机为每题建立对应的题目目录,目录名称与题目英文名称相同。选手根据题目要求,将自己提交的源程序,放在该题的题目目录下。

每位选手把自己提交的源程序连同要求的目录结构,存入D盘根目录中。(只递交源程序,测试时以源程序为准)

例如:假设试卷中有cashier、dune、manhattan三题,选手sx1001使用Pascal答题,其最终提交的文件为cashier.pas、dune.pas、manhattan.pas,则该选手提交的目录结构如下所示:

|---sx1001/

|---cashier/

|---cashier.pas |---dune/

|---dune.pas |---manhattan/

|---manhattan.pas

四、特别提醒

比赛开始前应先检查本机能否正常使用,如有问题可向监考老师提出。比赛结束后应及时离开机房,但注意不要关机。

1.采花生(chs.pas)

批准:绍兴市科协、绍兴市教育局 主办:绍兴科技馆、绍兴市教育教学研究院

1

第八届绍兴市少儿信息学竞赛复赛

问题描述:

在参加“采花生”这个项目比赛时,考官会出示一块n行、m列的花生田,上面一共种了n*m株花生苗。每株花生植株下都结了一定数量的花生果,比赛开始时选手站在第1行,第1列的位置,现要求用最短的时间找到结花生果最多的一株花生植株(数据保证花生果最多的植株只有一株),然后按先向南(下)走,再向东(右)的路线顺序去采摘它的花生果,沿路经过的其他花生植株下面的花生果也要一并采摘下来,但不允许采摘没有路过的花生植株,否则依犯规出局处理。问这个选手一共可以采摘到多少粒花生果?

如一块n=5,m=6的花生田 第1列 第2列 第3列 第4列 第5列 第6列

第1行 5 7 4 5 1 13 第2行 9 6 3 2 8 7 第3行 10 14 0 1 9 4 第4行 4 6 9 18 25 0 第5行 3 1 2 9 0 2

可以发现结花生果最多的那株花生植株在(4,5),则选手采摘的顺序应为(1,1)-(2,1)-(3,1)-(4,1)-(4,2)-(4,3)-(4,4)-(4,5),一共采得的花生果粒数为5+9+10+4+6+9+18+25=86。

输入文件:

输入文件chs.in,第1行有两个整数n和m( 1 < n,m <= 100 ),表示花生田一共有n行m列。

第2至n+1行,每行有m个用空格隔开的整数,第i + 1行的第j个整数Pij(0 <= Pij <= 700)表示花生田里植株(i, j)下花生的数目,0表示该植株下没有花生。

输出文件:

输出文件chs.out,只有一行,一个整数,表示选手一共摘到的花生果数目。 输入样例: 5 6

5 7 4 5 1 13 9 6 3 2 8 7 10 14 0 1 9 4 4 6 9 18 25 0 3 1 2 9 0 2 输出样例: 86

2.奶牛塔(nnt.pas)

批准:绍兴市科协、绍兴市教育局 主办:绍兴科技馆、绍兴市教育教学研究院

2

第八届绍兴市少儿信息学竞赛复赛

问题描述:

John最近为奶牛们的图书馆添置了一个巨大的书架,尽管它是如此的大,但它还是几乎瞬间就被各种各样的书塞满了。现在,只有书架的顶上还留有一点空间。

所有n(1<=n<=2000)头奶牛都有一个确定的身高Hi(1<=Hi<=1000)。设所有奶牛身高的和为s。书架的高度为b,并且一定保证1<=b<=s<2000000。

为了够到比最高的那头奶牛还要高的书架顶,奶牛们不得不象演杂技一般,一头站在另一头的背上,叠成一座“奶牛塔”。当然,这个塔的高度,就是塔中所有奶牛的身高之和。为了往书架顶上放东西,所有奶牛的身高和必须不小于书架的高度。显然,塔中的奶牛数目越多,整座塔就越不稳定,于是奶牛们希望在能够到书架顶的前提下,让塔中奶牛的数目尽量少。

现在,奶牛们找到了你,希望你帮她们计算这个最小的数目。 输入文件:

输入文件nnt.in,

第1行是二个用空格隔开的整数n和b;

第2至n+1行中,每行是1个整数Hi,表示每头奶牛的身高。 输出文件:

输出文件nnt.out,只有1行,1个整数,表示最少要多少头奶牛叠成塔,才能够到书架顶部。

输入样例: 6 40 6 18 11 13 19 11

输出样例: 3

3.贝茜式乘法(cheng.pas)

问题描述:

做厌了乘法计算题的贝茜,自创了一种新的乘法运算法则。在这套法则里,A*B等于一个取自A、一个取自B的所有数字对的乘积的和。比方说,123*45等于1*4 + 1*5 + 2*4 + 2*5 + 3*4 + 3*5 = 54。

对于2个给定的数A、B(1<=A,B<=长整型最大数),你的任务是,用新的乘法法则计算A*B的值。

输入文件:

批准:绍兴市科协、绍兴市教育局 主办:绍兴科技馆、绍兴市教育教学研究院

3

第八届绍兴市少儿信息学竞赛复赛

输入文件cheng.in,只有一行,是2个用空格隔开的整数A、B. 输出文件:

输出文件cheng.out,只有1行,1个整数,即新的乘法法则下A*B的值. 输入样例: 123 45 输出样例: 54

4.数字蜂房(bee.pas)

问题描述:

一只蜜蜂在下图所示的数字蜂房上爬动,已知它只能从标号小的蜂房爬到标号大的相邻蜂房,现在问你:蜜蜂从蜂房M开始爬到蜂房N(M

输入文件:

输入文件bee.in,只有一行,是2个用空格隔开的整数M,N(1<=M,N<=50)。 输出文件:

输出文件bee.out,只有1行,1个整数,即有多少种爬行路线。 输入样例: 1 14 输出样例: 377

chs.pas:

批准:绍兴市科协、绍兴市教育局 主办:绍兴科技馆、绍兴市教育教学研究院

4

第八届绍兴市少儿信息学竞赛复赛

var

n,m,i,j,max,x,y,s:longint;

a:array[0..100,0..100] of longint; begin

assign(input,'chs.in'); reset(input);

assign(output,'chs.out'); rewrite(output); readln(n,m); max:=0;

for i:= 1 to n do for j:= 1 to m do begin

read(a[i,j]);

if a[i,j]>max then begin

max:=a[i,j]; x:=i; y:=j; end; end; s:=0;

for i:= 1 to x do s:=s+a[i,1]; for i:= 2 to y do s:=s+a[x,i]; writeln(s); close(input); close(output); end.

nnt.pas:

var

n,b,i,x,s:longint;

h:array[1..20000]of longint; procedure kp(low,high:longint); var i,j,x:longint; begin

if low

i:=low;j:=high;x:=h[i]; repeat

while (i=h[j]) do j:=j-1; if i

批准:绍兴市科协、绍兴市教育局 主办:绍兴科技馆、绍兴市教育教学研究院5

第八届绍兴市少儿信息学竞赛复赛

begin

h[i]:=h[j]; i:=i+1; end;

while (i

h[j]:=h[i]; j:=j-1; end; until i=j; h[i]:=x; kp(low,i-1); kp(i+1,high); end; end; begin

assign(input,'nnt.in'); reset(input);

assign(output,'nnt.out'); rewrite(output); readln(n,b); s:=0;

for i:=1 to n do begin

readln(h[i]); s:=s+h[i]; end; if s

writeln(0); exit; end; kp(1,n); x:=0;s:=0; while s

x:=x+1; s:=s+h[x]; end; writeln(x); close(input); close(output); end.

批准:绍兴市科协、绍兴市教育局 主办:绍兴科技馆、绍兴市教育教学研究院6

第八届绍兴市少儿信息学竞赛复赛

cheng.pas:

var

x,y,a,b,i,len1,len2:longint; begin

assign(input,'cheng.in'); assign(output,'cheng.out'); reset(input); rewrite(output); readln(x,y); a:=0;b:=0; while x>0 do begin

a:=a+x mod 10; x:=x div 10; end;

while y>0 do begin

b:=b+y mod 10; y:=y div 10; end;

writeln(a*b); close(input); close(output); end.

bee.pas:

var

m,n,i,j,x:longint;

a:array[1..100] of real; begin

assign(input,'bee.in'); assign(output,'bee.out'); reset(input); rewrite(output); readln(m,n);

a[m+1]:=1; a[m+2]:=2; for i:= m+3 to n do a[i]:=a[i-2]+a[i-1]; write(a[n]:0:0); close(input); close(output); end.

批准:绍兴市科协、绍兴市教育局 主办:绍兴科技馆、绍兴市教育教学研究院7

本文来源:https://www.bwwdw.com/article/d7kf.html

Top