回 帖 发 新 帖 刷新版面

主题:大家谁要06~08年市赛的调试数据?

这是题目,后面还有哦

回复列表 (共7个回复)

沙发

007年“讯飞”杯合肥市第二十三届青少年信息学
(计算机)竞赛小学组复赛试卷
注意事项
考试时间为120分钟。编程时,务必看清题目。手工推算,直接打印结果不给分。如某
一测试点的运行时间超过1分钟,则视为该测试点未通过。
题目
一、 小华是北安小学六(6)班的学生。“五一”放假了,爸爸总算答应他可以在上午
玩益智游戏。小华飞快地下载了一个名叫“快乐五一”的游戏,准备大显身手了。
安装、运行,接着出现了一个“请输入密码:”的输入框,密码是什么呢?小华看了
一下说明,原来每次开始运行游戏都会在界面上显示一个小于100位的正整数N,同时显
示一个密码破解钥匙S(S为正整数且小于N的位数),只要将正整数N去掉其中任意S个数
字后使剩下的数最小,这个最小数就是密码。例如:N=2813465, S=4时可以删去2,8,6,
5,得到最小数134,密码就是134。这可难不倒小华,他号称学校信息学竞赛的“编程高
手”呢。很快他就编写出了一个专门破解密码的程序。请你编写一个这样的程序,
只要从键盘输入N和S就可以输出密码是什么。(24分)


二、 输入正确密码后,小华顺利地来到了第一关:装球游戏。游戏是这样的:有N个盒
子(N足够大,可装入任何数量的球),分别编号1,2,……,N。同时有S个小球
(0<S<100),要求将S 个小球装入到盒子中去。装球时必须遵守以下的规则:
(1)第1个盒子不能为空;(2)第1个盒子和最后一个有球的盒子中间不可以有
空的盒子;(3)装入必须严格按递增顺序进行,即每个有球盒子中的小球数必须
比它前面的盒子中的小球数多;(4)要求有球的盒子尽可能多;(5)装完后,相邻
盒子中球个数差的绝对值之和最小(未装的盒子不计)。
    如:当S=8,N=6时,装入方法有1,2,5或1,3,4。装入法1,2,5时差的绝对
值之和为ABS(2-1)+ABS(5-2)=4;装入法1,3,4时差的绝对值之和为ABS(3-1)+ABS
(4-3)=3。所以装入法1,3,4为正确的装入方法。
    小华仔细阅读了游戏规则后,开始使用他的编程解决方法了。请你也编写
一个这样的程序,当从键盘输入S(S表示小球的个数,0<S<100)之后,输出满足
上述游戏规则的装入方法。(24分) 


三、   小华利用自己编制的程序,在第一关装球游戏中屡屡成功,攒够了足够的积分后
,来到了第二关:填运算符游戏。游戏是这样的:游戏界面上有8张卡片,上面分别写有
1、2、3、4、5、6、7、8,每次计算机都随机出一个正整数N(1<N<100)。要求在8张卡
片中的7个空档内都填入+、-、*、/四个运算符号中的一个,使运算结果等于计算机显示
的数N,而且必须找到所有的结果等于N的方案。小华拿出纸和笔,做了两次,总结了一
定的规律后,为了提高得积分的速度又故技重演编写填运算符的程序了。你会编写这个
程序吗?请试一下。(N从键盘输入,如无解请输出“F”)(28分)


四、 过了前面几关,小华信心十足,来到第三关:找规律。游戏是这样的:计算机每次
显示一个正整数N,N表示小华他们六(6)班上的学生数。如果他们班的学生加上语文老
师和数学老师要站成一排照毕业照的话,会有多少种排队方法呢(要求语文老师和数学
老师只能分站在两边的最旁边)。太简单了,小华想,四年级时就学过这样的找规律
呢,记得两个人排队有2种方法,三个人排队6种方法,四个人排队有24种方法。他又
开始发挥他“编程高手”的特长了。怎么样,你也试一下?(N从键盘输入,1<N<70)
(24分)

板凳

2007年合肥市青少年信息学(计算机)竞赛
小学组测试数据
1.    (24分,8分*3)
(1)输入:1754328,4;输出:128

(2)输入:359673,5; 输出:3

(3)输入:275139186736456878,12;输出:134567       

2.    (24分,8分*3)

(1)    输入: 12
输出: 1  2  4  5

(2)    输入: 26
输出:1  3  4  5  6  7

(3)    输入:60
输出:1  2  3  4  5  7  8  9  10  11
3.     (28分,7分*4)
(1)    输入: 12
输出: 
1+2+3+4-5+6-7+8= 12
1+2+3-4+5+6+7-8= 12
1+2+3*4*5/6+7-8= 12
1+2+3/4*5+6*7/8= 12
1+2-3-4-5+6+7+8= 12
1-2+3-4+5-6+7+8= 12
1-2-3+4+5+6-7+8= 12
1-2*3/4*5*6+7*8= 12
1-2/3-4*5/6+7+8= 12
1*2+3*4+5-6+7-8= 12
1*2+3*4*5+6-7*8= 12
1*2+3*4*5-6*7-8= 12
1*2-3+4*5-6+7-8= 12
1*2*3+4-5+6-7+8= 12
1*2*3-4+5+6+7-8= 12
1*2*3*4-5-6+7-8= 12
1/2/3-4+5/6+7+8= 12

(2)    输入: 98
输出:F

(3)    输入:60
输出:
1+2+3+4*5+6*7-8= 60
1+2+3*4+5*6+7+8= 60
1+2+3*4-5+6*7+8= 60
1+2+3*4-5-6+7*8= 60
1+2*3-4-5+6+7*8= 60
1-2-3+4*5*6-7*8= 60
1*2-3+4-5+6+7*8= 60
1*2*3+4*5+6*7-8= 60
1*2*3/4*5*6+7+8= 60
1*2/3+4*5/6+7*8= 60

(4)输入: 75
输出:
1*2+3+4*5+6*7+8= 75
1*2+3+4*5-6+7*8= 75



4.     (24分,6分*4)
(1)    输入: 7
输出:10080

(2)    输入:25
输出: 31022420086661971968000000

(3)    输入:50
输出: 60828186403426756087225216332129537688755283137921024000000000000

(4)    输入: 64
输出: 25377386437176832820686677867032296160573103234909038439760378875042940846080000
0000000000

3 楼


2008年合肥市第二十四届机试题
注意事项
考试时间为120分钟。编程时,务必看清题目。手工推算,直接打印结果不给分。
如某一测试点的运行时间超过90秒,则视为该测试点未通过。


一、小杰是九华小学六(1)班的学生,刚从外地参加完电脑机器人比赛回来,听说学校
开展了六年级四个班参加的“迎奥运足球赛”,忙向周围同学打听比赛结果。李飞说
:“一班第三名,三班是冠军。”张伟说:“三班第二名,二班第三名。”陈山说:
“四班第二名,一班第一名。”其他同学告诉小杰:“他们四人是故意考考你的。
每个人只说对了一半。看你能不能推测出比赛结果呢?”这可难不到在学校信息学小
组里面外号:“奔腾” 的小杰,他很快就说出了比赛的结果。请你编写一个程序,
计算出比赛结果来。(22分) 
var
a,b,c,d:integer;
begin
for a:=1 to 4 do
for b:=1 to 4 do
if a<>b then
for c:=1 to 4 do
if (a<>c) and (a<>b) then
begin
for d:=1 to 4 do
if (a<>d) and (b<>d) and (c<>d) then
begin
if (a=3) or (c=1) then
if (c=2) or (b=3) then
if (d=2) or (c=1) then
writeln(a:2,b:2,c:2,d:2);
end;
end;
end.


二 、小杰和同学玩一种卡片接龙的游戏。游戏规则是这样的:首先给出1张写有英文字
符串的卡片,再给出4张英文字符串长度各不相同的卡片,要求从后给的4张里面选出1
张与第一张最长公共子串长度最长的卡片,接在第一张后面(如果出现最长公共子串
长度相等的情况,字符串长度长的优先);再将最长公共子串第二长的卡片接在后面;
如此类推,直到5张卡片全部连接,完成接龙。谁完成得最快,谁就是优胜者。请你
帮助小杰编写一个程序,能够根据规则快速完成接龙游戏,5个字符串先后由键盘输
入。(27分)
var
i,j,n,m,k,t,p:integer;
a,b,c,d:array[1..1000] of char;
e:array[1..10000] of string;
aa,bb,cc,dd,ee,ff:string;
begin
i:=1;
repeat
read(a[i]);
if a[i]=' ' then begin
;n:=12;
break;
end;
i:=i+1;
until n=12;
j:=1;
repeat
read(b[j]);
if b[j]=' ' then begin
;n:=15;
break;
end;
j:=j+1;
until n=15;
m:=1;
repeat
read(c[m]);
if c[m]=' ' then begin
;n:=19;
break;
end;
m:=m+1;
until n=19;
k:=1;
repeat
read(d[k]);
if d[k]=' ' then begin
;n:=123;
break;
end;
k:=k+1;
until n=123;
for t:=1 to i do e[1]:=aa+a[t];
for t:=1 to j do e[2]:=bb+b[t];
for t:=1 to m do e[3]:=cc+c[t];
for t:=1 to k do e[4]:=dd+c[t];
for i:=1 to 4 do
for j:=i+1 to 4 do
if e[i]+e[j]<e[j]+e[i] then
begin
ee:=e[i];
e[i]:=e[j];
e[j]:=ee;
end;
for i:=1 to 4 do
write(e[i]);
end.


三、学校准备和黄河小学联合开展一次“迎奥运火炬接力”。两校间的街道路线如
下图,出发点是九华小学(0,0),终点是黄河小学(M,N),出发后在每一个路口
只能向右或向上走。小杰立即编程计算出有多少条可行的路线,还把每条路线打印
出来了。(他的打印方式为用R代表向右,U 代表向上,如:RRRRRRUUU)M,N由键
盘输入,请你也试试?(24分)
      (0,N)   M        (M,N)黄河小学
            

        
            
            
      (0,0)九华小学    (M,0)
  


四、刚参加完学校的“迎奥运知识竞赛”,小杰就一直思索着刚才遇到的一道题目:
五个福娃按不同的顺序排列共有多少种排列方法?他想,这其实可以简化为1-5这5个数
的排列问题,那如果是1-N这N个自然数呢?他马上开始编程尝试,最后不但求出了1-N
 这N 个自然数时的方法种类,还按照从小到大的顺序把所有的排列方法打印出来。怎
么样,你也试一下?(N从键盘输入,1<=N <=9)(27分)

var
stack:array[0..20] of integer;
s:set of 0..20;
j,top,k,n,c:integer;
begin
readln(n);
s:=[ ];
top:=0;  /深度
k:=0;
c:=0;
while top>=0 do  /开始回溯
begin
k:=k+1;
if k>n
then begin k:=stack[top];s:=s-[k];top:=top-1;end
else if not(k in s) then
begin
top:=top+1;
stack[top]:=k;
s:=s+[k];
k:=0;
if top=n then begin
for j:=1 to top do write(stack[j]);
c:=c+1;
if c mod 10=0 then writeln else write(' ');
end
end
end
end.

我用回溯法。

4 楼

2009年合肥市青少年信息学(计算机)竞赛
小学组测试数据

题目一(24分,8分*3)

(一)    20    2  12  3  2  2  2  2  2  2  2

(二)    100    11  21  20  20  20  20  20  20  20  20

(三)    1567    406  1085  517  517  517  485  415  407  406  406

题目二(26分,(一)、(二)各10分,(三)6分)(如格式不对扣3分)

(一)    26    26 :11010
28 :011100

(二)    1236    1236 :10011010100
1240 :10011011000

(三)    2492    NO FRIEND


题目三(26分,13分*2) 

(一)    6 0 0 1 0 4 2    5  2  4  1  6  3

(二)    8 0 1 1 3 0 5 0 6    3  5  4  6  2  8  1  7

题目四(24分,8分*3)

(一)       18      17991

(二)       35    255418101

(三)       96    202446061219626491523096

5 楼

2009年上半年“讯飞“杯合肥市第二十五届青少年信息学

(计算机)竞赛小学组复赛试卷
注意事项
考试时间为120分钟。编程时,务必看清题目。程序请按题目要求命名。
手工推算,直接打印结果不给分。如某一测试的运行时间超过15秒,则视为该测试
未通过。

题目一:运动员号码牌(number.bas)
【问题描述】九华小学召开秋季运动会。六(一)办的学生小杰领到了他的运动
员号码“15“,有1章”1“和1张”5“,共2张号码牌组成的;他的同学张伟号码
是”6“,只有1张”6“号码牌;而李飞的号码是”1111“,由4张”1“号码牌组成,
爱动脑筋的小杰就想了:假设修晓得运动员数是N,按1-N编号,那么分别需要”0“~”9
“这始终号码牌多少张呢?请你编写一个程序,帮他计算出需要的各种号码
牌张数。(24分)

【样例输入】(键盘输入运动员人数N,N<2000)
15

【样例输出】(分别对应号码0-9需要的张数)
1 8 2 2 2 2 1 1 1 1

var
z,n,i,j,m,y:longint;
a:array[0..100000] of longint;
begin
read(n);
for i:=1 to n do
begin
y:=i;
for j:=1 to y div 10+1 do
begin
m:=y mod 10;
y:=y div 10;
for z:=0 to 9 do
if m=z then a[z]:=a[z]+1;
end;
end;
for i:=0 to 9 do
write(a[i],' ');
end.




题目二:找朋友(friend.bas)
【问题描述】看到自己的号码是“1111“,李飞很为自己的号码是一个靓号得以。
小杰思索了一会说:“按二进制换算,我的号码才是‘1111‘呢“。果然不错,是禁止
的”115“换算成二进制可不是”1111“吗?同学们都这样想。小杰灵机一动说:“我们
来玩一个找朋友的游戏,像我的号码的二进制数里有4个”1“、号码数值比我大且数
值差最小的同学做朋友”。同学们觉得很有意思,就热闹地开始玩“找朋友”的游戏
了。假设学校的运动员数是N(N=2500),按1-N编号,请你编写一个程序,帮某位号码
是M的同学找到他的朋友。(26分) 

【样例输入】(键盘输入某位同学的十进制数号码M)
17

【样例输出】(他和他的朋友的号码的十进制数形式及二进制形式)
17:10001
18:10010

var
b:array[1..2500] of longint;
n:longint;
procedure jz(n:longint);
var
k:longint;
begin
k:=n mod 2;
if n div 2<>0 then jz(n div 2);
write(k);
end;
begin
read(n);
write(n,':');
jz(n);
writeln;
write(n+1,':');
jz(n+1);
end.



题目三:推算(calc.bas)
【问题描述】运动会的开幕式开始了,选手们按照比赛项目和年级排成一列顺序入场。
小杰很高兴,着毕竟是自己作为小学生的最后一次运动会了。他一边兴奋地走着,一边
数着他前面有几个人的运动员号码比自己的号码小。教信息学的王老师恰好走过来,听
说小杰在数排在自已前面比自己的运动员号码小的人数,笑着说:“小杰,那我就布
置你一道作业,假设按现在的顺序,这N为同学都告诉你他的前面有多少位同学的运动
员号码比自己小,你能推算出他们的运动员号码呢?“。晚上回家,经过一番编写调试
,小杰终于编写出了这样的程序。怎么样,你也试一试?假设学校的运动员数是
N(N<=200),现在按1-N编号,A(1)~A(N)分别为每位运动员前面比自己的运动员号码
小的人数,请推算出他们原来的运动员号码。(26分)

【样例输入】(键盘输入N、A(1)~A(N))
4,0,0,1,3

【样例输出】(按现在的队列顺序输出原来的运动员号码)
3,1,2,4

题目四:队列(queue.bas)
【问题描述】运动会快结束了。班主任陈老师让小杰帮助他挑选N位同学排成一个1~N的
顺序队列,参加闭幕式的演出排练。假设最多可以有N位男生和N位女生供挑选参加此
排练,要求不能有一位女生单独在队列中(每1名女生的前或后至少有另1名女生)。
请你编程帮助小杰计算一下共有多少种方案?N从键盘输入,N<100,要求你输出精确
数值。如:N=4时,可以有女女女女、女女女男、男女女女、女女男男、男女女男、
男男女女、男男男男共7种方案。(24分)

【样例输入】(键盘输入N)
4

【样例输出】(方案数)
7

var
n,m,i,k,s:integer;
a,b:array[0..100] of integer;
begin
readln(n,m);
for i:=1 to m do
begin
a[i]:=i;
b[i]:=n-m+i;
end;
k:=m;
s:=0;
repeat
if k=m
then begin
  s:=s+1;
  for i:=1 to m do write(a[i]);
  write(' ');
  end;
if a[k]<b[k]
then begin
  a[k]:=a[k]+1;
  if k<m then for k:=k+1 to m do a[k]:=a[k-1]+1;
  end
  else k:=k-1;
until k=0;
writeln;
writeln('s=',s);
end.

6 楼

1.乘车费用(taxi.bas/ taxi.pas/ taxi.c)

【问题描述】

元旦快到了,小W的班级准备举办元旦庆祝活动,小W和几个同学一起帮助班主任老师进行准备。小W带着几个同学乘坐出租车去买东西。在出租车上,他们向司机师傅了解到出租车计价方案为:2.5公里以内起步价是6元,超过2.5公里之后按1.2元/公里计价,超过10公里之后在1.2元/公里的基础上加价50%,另外,停车等候时间则按时间计费后加入总价:1元/5分(注:不满5分钟不计费)。好奇的小W想自己先估算一下大概要多少费用。已知:小W等人乘坐出租车路程为N公里,中间停车等候时间总共M分钟,请计算小W应付的出租车费用是多少元?

【输入文件】

输入文件共有一行,包含两个整数N,M,分别表示出租车行驶的里程和中间停车的时间,中间以空格分开,0≤N≤200,0≤M≤60。

【输出文件】

输出仅包含一个整数,表示小W应付的乘车费用,四舍五入到整数元。

【输入样例】

8 7

【输出样例】

14


2.围墙重建(wall.bas/ wall.pas/ wall.c)

【问题描述】

为了给同学们营造一个良好的学习环境和方便学校的管理,市政府准备对小W就读的学校进行重新规划,占地面积将再次扩大。学校通过领导会议决定,重建学校的围墙。由于学校太大,重建围墙也不是一件小项目,学校决定请专门的建筑公司来建筑。

许多建筑公司从网上得知这个消息后,纷纷来到学校,找到学校领导,对自己公司进行介绍,并希望能接下这个项目。学校领导对很多家公司印象都还不错,难以取舍,为了公平,学校决定通过竞标决定把这个项目交给哪家公司负责。这次竞标是由学校自主决定的,不但要注重建筑实力,而且还要看建筑公司是否有足够的智慧。

学校通过两轮选拔。第一轮,选出建筑实力较强的公司。进入第二轮后,由学校专门负责这个项目的领导进行智力考核。

领导说:为了美观,我们准备建设一面2米高的围墙,围墙建好后,墙外要贴上有图画的瓷砖,当然这就需要瓷砖越大越美观了。目前市面用的最大瓷砖是多大?

公司:宽1米,长2米的

领导:哦,我们就用这种吧,我们学现需建筑N米长的围墙,如果用这种瓷砖来贴,总共有多少种贴法呢?

公司:…………….(正在计算中……………)

【输入文件】

输入文件为一个数N(1<N<10000),表示围墙的长度。

【输出文件】

输出一个数,表示如果用宽1米、长2米,贴在高2米,长N米的围墙上,最多有多少种贴法?(输出数据后需换行)

【样例输入1】

4

【样例输出1】

5

【样例输入2】

6

【样例输出2】

13

【数据规模】

对于20%的数据,2<N<90;

对于60%的数据,2<N ≤1200;

对于100%的数据,2< N<10000。

program t2;
var
a:array[1..10000] of real;
m,n:integer;
begin
read (n);
a[1]:=1;
a[2]:=2;
for m:=3 to n do
a[m]:=a[m-1]+a[m-2];
writeln (a[n]:0:0);
end.


3.走迷宫(maze.bas/ maze.pas/ maze.c)

【问题描述】

小W来到一个迷宫游玩,他发现迷宫非常特别。这个迷宫共有N层楼,配备了一个特别的电梯。迷宫的每一层都可以停电梯,而且第i层 (1<=i<=N)上有一个数字Ki(0<=Ki<=N),电梯内只提供四个按钮:开,关,上,下。上下的层数等于当前楼层上的那个数字。当然,如果不能满足要求,相应的按钮就会失灵。例如:4 2 1 2 5代表了Ki(K1=4,K2=2,……),从一楼开始。在一楼,按“上”可以到5楼,按“下”是不起作用的,因为没有-3楼。进入迷宫中的人都想尽可能地少按电梯到达目的地,假如给你出发楼层A和目的楼层B,请你帮忙求出从A层到B层至少要按几次按钮。

【输入文件】

输入文件共有二行,第一行为三个用空格隔开的正整数,表示N,A,B(1≤N≤200, 1≤A,B≤N),第二行为N个用空格隔开的正整数,表示Ki。

【输出文件】

输出文件仅一行,即最少按键次数,若无法到达,则输出-1。

【输入样例】

5 1 5

4 2 1 2 5

【输出样例】

1


4.足球联赛(football.bas/ football.pas/ football.c)

【问题描述】

为了庆祝元旦,J市决定举办全市小学足球联赛。各学校积极响应,共有N支球队报名参加,爱好足球的小W也参加了。为了活动的开展和不影响学生学习,只能安排K场比赛,每支球队最多参加两场比赛,至少参加零场比赛。因球队水平不同,每支球队都拥有一个和其他球队不同的水平等级(用一个正整数来表示)。在比赛中,等级高的球队必须作为客场,等级低的球队必须作为主场。每个球队最多只能做一次主场和一次客场。为了增加比赛的观赏度,观众希望K场比赛中球队水平差距的总和最小。比如有7支球队,他们的等级分别是30、17、26、41、19、38、18,要进行3场比赛。那么最好安排是球队2 vs 球队7, 球队7 vs 球队5 ,球队6 vs 球队4,此时等级差的总和等于(18-17) + (19-18) + (41-38) = 5达到最小。

【输入文件】

第一行两个正整数N ,K。

接下来有N 行,第i行表示第i 支球队的等级。

【输出文件】

共一行,输出最小的等级差的总和。

【样例输入】

7 3 

30 

17 

26 

41 

19 

38 

18

【样例输出】

5

【数据范围】

对于20%的数据,1≤N≤300 

对于80%的数据,1≤N≤5000

对于100%的数据,1≤N≤10000 

保证所有输入数据中等级的值小于32000,1 ≤K≤ N-1

7 楼

加我为好友,我给你更多的,我QQ:1078350005
备注信息:我和你是编程王

我来回复

您尚未登录,请登录后再回复。点此登录或注册