ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:122.47KB ,
资源ID:11896322      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11896322.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(慈溪市小学生计算机程序设计竞赛复赛试题解题报告.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

慈溪市小学生计算机程序设计竞赛复赛试题解题报告.docx

1、慈溪市小学生计算机程序设计竞赛复赛试题解题报告2013年慈溪市小学生计算机程序设计比赛复赛试题解题报告1 统计方格(count.pas) 【问题描述】 给出一张n行m列仅由黑白方格组成的黑白图片(行从上到下1到n编号,列从左到右1到m编号)。如下图是一张由17行18列方格构成的黑白图片,图片中的任意一个方格要么是白色,要么是黑色。仔细观察这张黑白图片我们可以发现,图中共有60个黑色方格(连续的黑色方格不能算成一个),黑色方格最多的行是第3行和第17行,都为6个,黑色方格最少的行是第5行、第6行、第9行、第12行、第13行、第15行,都为2个。 请编写程序统计黑白图片中黑色方格的总数,黑色方格数

2、目最多的行的行号及黑色方格数目最少的行的行号。 【输入数据】 输入文件count.in:输入从文件中读取,输入共n+1行。 第1行是两个整数n和m(1n, m100),分别表示黑白图片的行数和列数,两个整数间用空格分隔。 第2行到第n+1行,描述了图片中每个方格的颜色,黑色用整数0表示,白色用整数1表示。每行为m个用空格分隔的0或1,其中第i+1行第j 列的整数为Aij(1in,1jm,Aij=0或者Aij=1),表示图片第i 行第j 列位置的方格颜色。 【输出数据】 输出文件count.out:结果输出到文件中。 输出共1行,包含3个整数。分别表示输入文件所表示的黑白图片中黑色方格的总数,黑

3、色方格数目最多的行的行号及黑色方格数目最少的行的行号。注意,如果黑色方格最多的行有多行一样,则输出行号最小的,同样,如果黑色方格最少的行有多行一样,也是输出行号最小的。【输入输出样例1】count.in6 61 1 1 1 1 11 0 1 0 0 11 0 1 1 0 11 0 1 0 1 11 0 1 0 0 11 1 1 1 1 1count.out10 2 1【样例1解释】 输入的黑白图片的大小为6行6列,第1行0个黑色方格,第2行3个黑色方格,第3行2个黑色方格,第4行2个黑色方格,第5行3个黑色方格,第6行0个黑色方格。所以总共有10个黑色方格,黑色方格最多且行号最小的行是第2行,

4、黑色方格最少且行号最小的行是第1行。【输入输出样例2】count.in17 181 1 1 1 1 1 0 0 1 1 0 0 1 1 1 1 1 11 1 1 1 1 0 1 1 0 0 1 1 0 1 1 1 1 11 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 11 1 1 1 0 0 1 1 1 1 1 1 0 0 1 1 1 11 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 11 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 11 1 0 1 1 1 0 1 1 1 1 0 1 1 1 0 1 11 0 0 1 1 1 1 1

5、 1 1 1 1 1 1 1 0 0 10 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 00 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 00 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 01 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 11 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 11 1 0 1 1 1 1 1 0 0 1 1 1 1 1 0 1 11 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 11 1 1 1 0 0 1 1 1 1 1 1 0 0 1 1 1 1

6、1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1count.out60 3 5【样例2解释】样例2如题目描述。【数据范围约定】 所有的输入数据保证1n, m100。【问题分析】给出一张黑白图片,输出黑色方格的总数,黑色方格数目最多的行的行号及黑色方格数目最少的行的行号。具体见【问题描述】。【算法分析】直接模拟,枚举每一行。【参考程序】var n,m,max,min,v1,v2,i,j,x,s,tot:longint;beginassign(input,count.in); reset(input);assign(output,count.out); rewrite(out

7、put);max:=-1; min:=101;read(n,m);for i:=1 to n do begin s:=0; for j:=1 to m do begin read(x); if x=0 then begin inc(s); inc(tot); end; end; if smax then begin max:=s; v1:=i; end; if smin then begin min:=s; v2:=i; end; end;writeln(tot, ,v1, ,v2);close(input); close(output);end.2转圈游戏(circle.pas) 【问题描述

8、】 n个小朋友(小朋友从0到n-1进行编号)围坐一圈玩游戏。按照顺时针方向依次给 n 个位置编号,也是从0到n-1。最初,第0号小朋友在第0号位置,第1号小朋友在第1号位置,依此类推。游戏规则如下:每一轮给出两个整数a、b。若a的值等于1,则所有小朋友依次逆时针转b个位置;若a的值等于2,则所有小朋友依次顺时针转b个位置。比如:a=2,b=3,那么第0号位置上的小朋友顺时针转到第3号位置,第1号位置上的小朋友顺时针转到第4号位置,第n-3号位置上的小朋友顺时针转到第0号位置,第n-2号位置上的小朋友顺时针转到第1号位置,第n-1号位置上的小朋友顺时针转到第2号位置,一轮转圈结束。依照上面的游戏

9、规则,请问进行q轮后,第0到n-1号位置上的小朋友的编号分别是什么?【输入数据】 输入文件circle.in:输入从文件中读取,输入共q+1行。第1行是两个整数n和q(1n100000, 0q200000),表示n个小朋友要进行q轮转圈游戏,两个整数间用空格分隔。 第2行到第q+1行,每行两个用空格分隔的整数。其中第i+1行两个整数为ai 和bi (ai=1或者ai=2, 0bin-1),表示第i 轮转圈的信息。若ai=1,则所有小朋友依次向逆时针方向转bi 个位置,若ai=2,则所有小朋友依次向顺时针方向转bi 个位置。【输出数据】 输出文件circle.out:结果输出到文件中。输出共n行

10、,每行包含一个整数,第i 行整数表示经过转圈后第i-1号位置上的小朋友的编号。【输入输出样例1】circle.in4 12 3circle.out1230【样例1解释】4个小朋友参加转圈游戏,转圈共进行了1轮,在这轮转圈游戏中,所有小朋友依次向顺时针方向转了3个位置,第0号小朋友转到第3号位置,第1号小朋友转到了第0号位置,第2号小朋友转到了第1号位置,第3号小朋友转到了第2号位置,所以最后第0号位置到第3号位置上的小朋友编号分别是1,2,3,0。【输入输出样例2】circle.in5 31 12 21 3circle.out23401【样例2解释】 5个小朋友参加转圈游戏,转圈共进行了3轮。

11、在第1轮转圈游戏中,所有小朋友依次向逆时针方向转了1个位置。在第2轮转圈游戏中,所有小朋友依次向顺时针方向转了2个位置。在第3轮转圈游戏中,所有小朋友依次向逆时针方向转了3个位置。所以最后第0号位置到第4号位置上的小朋友编号分别是2,3,4,0,1。【数据范围约定】 对于70%的数据,1n1000,0q2000。对于100%的数据,1n100000,0q200000。【问题分析】求n个人按输入规则进行q轮转圈后,每个位置上的人对应的编号。【算法分析】模拟,只要统计出每个人最后相当于逆时针转了多少距离即可。【参考程序】var x,i,v,n,m,a,b:longint;beginassign(i

12、nput,circle.in); reset(input);assign(output,circle.out); rewrite(output);read(n,m);for i:=1 to m do begin read(a,b); if a=1 then v:=(v-b) mod n else v:=(v+b) mod n; end;for i:=0 to n-1 do begin x:=(i-v) mod n; while xmid) or (ai=mid) and (bim) do inc(i); while (ajm) do dec(j); if Ij;if lj then sort(l,j);if i ans then ans:=abs(s1-s2); for j:=q+1 to m do begin if odd(j) then s1:=s1+ai+p-1,j-ai-1,j else s2:=s2+ai+p-1,j-ai-1,j; if odd(j-q) then s1:=s1-ai+p-1,j-q+ai-1,j-q else s2:=s2-ai+p-1,j-q+ai-1,j-q; if abs(s1-s2) ans then ans:=abs(s1-s2) end end; writeln(ans); close(input); close(output)end.

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1