第十二届全国青少年信息学江西赛区复赛试题.docx
- 文档编号:13121956
- 上传时间:2023-06-11
- 格式:DOCX
- 页数:15
- 大小:25.53KB
第十二届全国青少年信息学江西赛区复赛试题.docx
《第十二届全国青少年信息学江西赛区复赛试题.docx》由会员分享,可在线阅读,更多相关《第十二届全国青少年信息学江西赛区复赛试题.docx(15页珍藏版)》请在冰点文库上搜索。
第十二届全国青少年信息学江西赛区复赛试题
第十二届全国青少年信息学(计算机)奥林匹克分区联赛
(江西赛区)初级组复赛试题
说明:
复赛共3道题,总分100分。
程序输出时用到的汉字提示可以用拼音来代替
第一题(30分)在一个超市的收银处有10位顾客在排队等着付款,他们的编号依次为1,2,…,10。
由于每个顾客所购的商品不同,因此付款时所需的等待时间也就不一样。
假设这10个每个人单独付款所需的时间依次为
7
4
6
12
8
20
5
13
2
16
请编程找出这10个人排队的一种顺序,使得10个人的平均等待时间最少。
说明:
平均等待时间是把每个人的等待时间相加最后再除以n得到。
假设这n个人是按照编号1至n的自然顺序排列的,则此时的平均等待时间为:
平均等待时间=
输出格式要求:
程序的输出共分两行,其中第一行是编程求到的一种排列顺序,即1到n的一种排列;第二行是这种排列方案下的最少平均等待时间,要求输出的结果精确到小数点后两位。
第二题(30分)利用循环结构编程打印如下的图案。
A
ABC
ABCDE
ABCDEFG
ABCDEFGHI
ABCDEFG
ABCDE
ABC
A
第三题(40分)用高精度计算S=1!
+2!
+3!
+…+n!
的准确值,其中n〈50。
说明:
上面求和公式当中的“!
”表示阶乘,它表示连乘,例如:
10!
=10*9*8*7*6*5*4*3*2*1
编程要求:
从键盘上输入一个小于50的正整数n,要求能够输出结果S的准确值。
例如:
输入:
6
输出:
S=873
收藏分享评分
第十四届全国青少年信息学(计算机)奥林匹克联赛(江西赛区)初级组复赛试题
2009-6-1713:
52
提问者:
曾敏天才|悬赏分:
50|浏览次数:
910次
2009-6-2019:
56
最佳答案
1.ISBN号码
描述Description
每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字、1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-”就是分隔符(键盘上的减号),最后一位是识别码,例如0-670-82162-4就是一个标准的ISBN码。
ISBN码的首位数字表示书籍的出版语言,例如0代表英语;第一个分隔符“-”之后的三位数字代表出版社,例如670代表维京出版社;第二个分隔符后的五位数字代表该书在该出版社的编号;最后一位为识别码。
识别码的计算方法如下:
首位数字乘以1加上次位数字乘以2……以此类推,用所得的结果mod11,所得的余数即为识别码,如果余数为10,则识别码为大写字母X。
例如ISBN号码0-670-82162-4中的识别码4是这样得到的:
对067082162这9个数字,从左至右,分别乘以1,2,...,9,再求和,即0×1+6×2+……+2×9=158,然后取158mod11的结果4作为识别码。
你的任务是编写程序判断输入的ISBN号码中识别码是否正确,如果正确,则仅输出“Right”;如果错误,则输出你认为是正确的ISBN号码。
输入格式InputFormat
输入文件isbn.in只有一行,是一个字符序列,表示一本书的ISBN号码(保证输入符合ISBN号码的格式要求)。
输出格式OutputFormat
输出文件isbn.out共一行,假如输入的ISBN号码的识别码正确,那么输出“Right”,否则,按照规定的格式,输出正确的ISBN号码(包括分隔符“-”)。
样例输入SampleInput
【样例1】
0-670-82162-4
【样例2】
0-670-82162-0
样例输出SampleOutput
【样例1】
Right
【样例2】
0-670-82162-4
2.传球游戏
描述Description
上体育课的时候,小蛮的老师经常带着同学们一起做游戏。
这次,老师带着同学们一起做传球游戏。
游戏规则是这样的:
n个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球,每个同学可以把球传给自己左右的两个同学中的一个(左右任意),当老师再次吹哨子时,传球停止,此时,拿着球没传出去的那个同学就是败者,要给大家表演一个节目。
聪明的小蛮提出了一个有趣的问题:
有多少种不同的传球方法可以使得从小蛮手里开始传的球,传了m次以后,又回到小蛮手里。
两种传球方法被视作不同的方法,当且仅当这两种方法中,接到球的同学按接球顺序组成的序列是不同的。
比如有三个同学1号、2号、3号,并假设小蛮为1号,球传了三次回到小蛮手里的方式有1->2->3->1和1->3->2->1,共2种。
输入格式InputFormat
输入共一行,有两个用空格隔开的整数n,m(3<=n<=30,1<=m<=30)。
输出格式OutputFormat
输出共一行,有一个整数,标示符合题意的方法数。
样例输入SampleInput
33
样例输出SampleOutput
2
3.立体图描述Description
小渊是个聪明的孩子,他经常会给周围的小朋友们讲些自己认为有趣的内容。
最近,他准备给小朋友讲解立体图,请你帮他画出立体图。
小渊有一块面积为m*n的矩形区域,上面有m*n个边长为1的格子,每个格子上堆了一些同样大小的积木(积木的长宽高都是1),小渊想请你打印出这些格子的立体图。
我们定义每个积木为如下格式,并且不会做任何翻转旋转,只会严格以这样的一种形式摆放:
+---+
//|
+---+|
||+
||/
+---+
每个顶点用1个加号‘+’表示,长用3个‘-’表示,宽用1个‘/’表示,高用两个‘|’表示。
字符‘+’,‘-’,‘/’,‘|’的ASCII码分别为43,45,47,124。
字符‘.’(ASCII码46)需要作为背景输出,即立体图里的空白部分需要用‘.’来代替。
立体图的画法如下面的规则:
若两块积木左右相邻,图示为:
..+---+---+
.///|
+---+---+|
|||+
|||/.
+---+---+..
若两块积木上下相邻,图示为:
..+---+
.//|
+---+|
||+
||/|
+---+|
||+
||/.
+---+..
若两块积木前后相邻,图示为:
....+---+
...//|
..+---+|
.//|+
+---+|/.
||+..
||/...
+---+....
立体图中,定义位于第(m,1)的格子(即第m行第1列的格子)上面自底向上的第一块积木(即最下面的一块积木)的左下角顶点为整张图最左下角的点。
输入格式InputFormat
输入文件drawing.in第一行有用空格隔开的2个整数m和n,表示有m*n个格子(1<=m,n<=50)。
接下来的m行,是一个m*n的矩阵,每行有n个用空格隔开的整数,其中第i行第j列上的整数表示第i行第j列的格子上摞有多少个积木(1<=每个格子上的积木数<=100)。
输出格式OutputFormat
输出文件drawing.out中包含题目要求的立体图,是一个K行L列的字符矩阵,其中K和L表示最少需要K行L列才能按规定输出立体图。
样例输入SampleInput
34
2212
2211
3212
样例输出SampleOutput
......+---+---+...+---+
..+---+//|..//|
.//|-+---+|.+---+|
+---+|//|+-||+
||+---+|/+---+|/|
||//|+//|-+|
+---+---+|/+---+|/|+
|||+-||+|/.
|||/||-|+..
+---+---+---+---+|/...
|||||+....
|||||/.....
+---+---+---+---+......
4.排座椅
描述Description
【问题描述】
上课的时候总有一些同学和前后左右的人交头接耳,这是令小学班主任十分头疼的一件事情。
不过,班主任小雪发现了一些有趣的现象,当同学们的座次确定下来之后,只有有限的D对同学上课时会交头接耳。
同学们在教室中坐成了M行N列,坐在第i行第j列的同学的位置是(i,j),为了方便同学们进出,在教室中设置了K条横向的通道,L条纵向的通道。
于是,聪明的小雪想到了一个办法,或许可以减少上课时学生交头接耳的问题:
她打算重新摆放桌椅,改变同学们桌椅间通道的位置,因为如果一条通道隔开了两个会交头接耳的同学,那么他们就不会交头接耳了。
请你帮忙给小雪编写一个程序,给出最好的通道划分方案。
在该方案下,上课时交头接耳的学生对数最少。
输入格式InputFormat
【输入】
输入文件seat.in的第一行,有5各用空格隔开的整数,分别是M,N,K,L,D(2<=N,M<=1000,0<=K 接下来D行,每行有4个用空格隔开的整数,第i行的4个整数Xi,Yi,Pi,Qi,表示坐在位置(Xi,Yi)与(Pi,Qi)的两个同学会交头接耳(输入保证他们前后相邻或者左右相邻)。 输入数据保证最优方案的唯一性。 输出格式OutputFormat 【输出】 输出文件seat.out共两行。 第一行包含K个整数,a1a2……aK,表示第a1行和a1+1行之间、第a2行和第a2+1行之间、…、第aK行和第aK+1行之间要开辟通道,其中ai 第二行包含L个整数,b1b2……bk,表示第b1列和b1+1列之间、第b2列和第b2+1列之间、…、第bL列和第bL+1列之间要开辟通道,其中bi 样例输入SampleInput 【输入样例】 45123 4243 2333 2524 样例输出SampleOutput 2 24 附标程: 1.ISBN号码 programasd; vars,s1: string; i,j,k,q,b,x,n,z,u: longint; begin readln(s);s1: =s;q: =length(s1); delete(s1,q,1); whilepos('-',s)<>0do delete(s,pos('-',s),1); k: =length(s); fori: =1tok-1do begin val(s[i],j); x: =x+j*i; end; val(s[k],z,u); x: =xmod11; ifu=0then ifz=xthen writeln('Right') else casexof 1..9: writeln(s1,x); 10: writeln(s1,'X'); end; ifu<>0then ifx=10thenwriteln('Right') elsewriteln(s1,x); end. 2.传球游戏 programp1485; varxx: array[0..1000,0..1000]oflongint; i,j,k,l,n,m: longint; begin readln(n,m); fori: =1tomdo forj: =1tondo xx[i,j]: =0; xx[0,1]: =1;xx[1,n]: =1;xx[1,2]: =1; fori: =1tomdo begin xx[i,1]: =xx[i-1,n]+xx[i-1,2]; forj: =2ton-1do xx[i,j]: =xx[i-1,j-1]+xx[i-1,j+1]; xx[i,n]: =xx[i-1,1]+xx[i-1,n-1]; end; writeln(xx[m,1]); end. 3.立体图 programo1; varminh,minl,max,k,n,m,i,j,h,l,maxh,maxl: integer; a: array[1..50,1..50]ofinteger; p: array[-304..304,-304..304]ofchar; begin readln(n,m); fillchar(p,sizeof(p),'.'); fori: =1tondo forj: =1tomdo beginread(a[i,j]);if(i=1)and(a[i,j]>max)thenmax: =a[i,j];end; max: =max*3+3; minh: =1;minl: =1; fori: =1tondo forj: =1tomdo begin h: =max+(i-1)*2;l: =4*j+1+(n-i)*2; ifh>maxhthenmaxh: =h; ifl>maxlthenmaxl: =l; ifl-4 =l-4; fork: =1toa[i,j]do begin ifh-5 =h-5; p[h,l]: ='+'; p[h,l-1]: ='-'; p[h,l-2]: ='-'; p[h,l-3]: ='-'; p[h,l-4]: ='+'; p[h-1,l]: ='|'; p[h-1,l-1]: =''; p[h-1,l-2]: =''; p[h-1,l-3]: =''; p[h-1,l-4]: ='|'; p[h-2,l]: ='|'; p[h-2,l-1]: =''; p[h-2,l-2]: =''; p[h-2,l-3]: =''; p[h-2,l-4]: ='|'; p[h-3,l]: ='+'; p[h-3,l-1]: ='-'; p[h-3,l-2]: ='-'; p[h-3,l-3]: ='-'; p[h-3,l-4]: ='+'; p[h-1,l+1]: ='/'; p[h-2,l+1]: =''; p[h-2,l+2]: ='+'; p[h-3,l+1]: =''; p[h-3,l+2]: ='|'; p[h-4,l+1]: ='/'; p[h-4,l+2]: ='|'; p[h-5,l+2]: ='+'; p[h-5,l+1]: ='-'; p[h-4,l-3]: ='/'; p[h-4,l-2]: =''; p[h-4,l-1]: =''; p[h-4,l]: =''; p[h-5,l-2]: ='+'; p[h-5,l-1]: ='-'; p[h-5,l]: ='-'; h: =h-3; end; end; fori: =minhtomaxhdo begin forj: =minltomaxl+2do write(p[i,j]); writeln; end; end. 4.排座椅 programp1498;{1,数组压缩,去0(*)2,基数排序(**)} typende=record name: longint; ren: longint; end; node=array[1..1000]ofnde; vara,b,x,y,p,q: array[1..2000]oflongint; c,d: node;f: array[1..2000]ofboolean; i,j,k,l,m,n,o,q1,q2: longint; proceduretry(m,q1,k: longint;c: node); vari,j,l: longint;t: nde; begin fori: =1toq1-1do forj: =I+1toq1do if(c[i].ren begin t: =c[i];c[i]: =c[j];c[j]: =t; end; fori: =1tokdo{**} f[c[i].name]: =true; fori: =1tomdo iff[i]=truethen write(i,'');writeln; end; begin readln(m,n,k,l,o); fori: =1toodo begin readln(x[i],y[i],p[i],q[i]); ifx[i]=p[i]then ify[i] inc(b[q[i]]); ify[i]=q[i]then ifx[i] inc(a[p[i]]); end; fori: =1to1000do begin ifa[i]>0thenbegin{*} inc(q1);c[q1].name: =i; c[q1].ren: =a[i]; end; ifb[i]>0thenbegin inc(q2);d[q2].name: =i; d[q2].ren: =b[i]; end; end; try(m,q1,k,c); fillchar(f,sizeof(f),false); try(n,q2,l,d); end.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第十二 全国青少年 信息学 江西 赛区 复赛 试题
![提示](https://static.bingdoc.com/images/bang_tan.gif)