宁波市第29届中小学生计算机程序设计竞赛复赛试题(小学组)
宁波市第29届中小学生程序设计竞赛复赛试题(初中组)解题报告(1)

宁波市第29届中小学生程序设计竞赛复赛试题(初中组)解题报告第一题战马列队题意不难理解,因为n<=1000,我们可以枚举将战马替换后,最后一匹白马在队列中的位置,这样只需统计这匹马之前(包括这匹马)棕马的数量s1,这匹马之后(不包括这匹马)白马的数量s2,将它们替换就能达到我们需要的队列,那么以这个位置作为最后一匹白马的答案就是替换的马匹数即ans=s1+s2。
最终答案即为所有ans中的最小值。
别忘了n<=1000,string存不下,要用ansistring。
代码如下:vars:ansistring;i,j,n,ans,cnt:integer;beginreadln(n);readln(s);ans:=n;for i:=1 to n do begin // i即为枚举的最后一匹白马的位置cnt:=0;for j:=1 to i doif s[j]='B' then inc(cnt);for j:=i+1 to n doif s[j]='W' then inc(cnt);if ans>cnt then ans:=cnt;end;writeln(ans);end.第二题马农这道题首先需要一个常用的小技巧,我们开一个二维数组s[i,j],表示左上角为(1,1),右下角为(i,j)的子矩形中所有数字的和,我们可以用一个递推公式快速求出s数组,即s[i,j] = s[i-1,j]+s[i,j-1]-s[i-1,j-1]+a[i,j] ,其中a[i,j] 表示(i,j)这个格子上的数字。
那么求出s数组有什么用呢?利用s数组,可以迅速求出左上角为(x,y),右下角为(z,u)的子矩形中所有数字的和,公式为ans=s[z,u]-s[z,y-1]-s[x-1,u]+s[x-1,y-1]。
其实上述技巧,在前几年的宁波赛中出现过,即为小学组的题目《方格稿纸》,当然我们是初中组,自然难度要比小学组大,了解上述小技巧后,我们开始来解决这道题目。
宁波市第25届中小学生计算机程序设计竞赛复赛试题(小学组)

中小学生计算机程序设计竞赛复赛试题(小学组)题目一览关于竞赛中不同语言使用限制的说明一.关于使用Pascal语言与编译结果的说明1.对于Pascal语言的程序,当使用IDE和fpc编译结果不一致时,以fpc的编译结果为准。
2.允许使用数学库(uses math子句),以及ansistring。
但不允许使用编译开关(最后测试时pascal的范围检查开关默认关闭:{$R-,Q-,S-}),也不支持与优化相关的选项。
3.本次比赛允许使用64位整数类型:int64或qword。
1. 折纸(folding)【题目描述】小猪上幼儿园的时候,报名参加了折纸兴趣小组。
他表现出了极大的热情,折出了n件折纸作品。
他的作品只有3种,分别是长方形、正方形和三角形。
小猪很想知道他的n件折纸的周长之和。
【输入】输入文件folding.in的第一行只有一个整数n,表示共有n件作品。
接下来n行,每行有若干个以空格分隔的整数,表示一件作品的情况。
其中第一个整数k (k=1或2或3),表示小猪制作的这件作品的类型,1表示长方形,2表示正方形,3表示三ab c三边长度分别为a,b,c的三角形,周长为a+b+c 相邻边长度分别为a和b的长方形,周长为2a+2bb形,周长为4aaa角形。
如果k为1,后面会跟二个正整数a和b,表示长方形的二条相邻边的长度分别为a和b;如果k为2,后面会跟一个正整数a,表示正方形的四条边的长度均为a。
如果k为3,后面会跟三个正整数a、b和c,表示三角形三条边的长度分别为a、b和c(输入数据保证a,b,c能构成三角形,不需验证)。
【输出】输出文件folding.out中仅有一行,该行只有一个整数,表示所有作品的周长之和。
【样例输入】31 2 32 43 6 7 8【样例输出】47【样例说明】共有3件作品:第一件作品:二条相邻边长度分别为2和3的长方形;第二件作品:边长为4的正方形;第三件作品:三条边长度分别为6、7、8的三角形。
宁波市江北区信息学复赛题目(1)

宁波市江北区中小学生计算机程序设计竞赛复赛试题题目一览注意:一、关于竞赛中编程语言使用的规定参照中国计算机学会公布的《关于NOI系列赛编程语言使用限制的规定》。
二、评测环境为windows。
1.整点报时(time.pas/c/cpp)【题目描述】现在智能手机中都有闹钟程序,经过设置,它可以实现整点报时,发出若干个”di”的声音,请用程序来模拟这一现象。
【输入】一个整数n【输出】只有一行,用n个”di”来表示,之间有一个空格。
【样例输入】3【样例输出】di di di【数据规模】对于100%的数据,1<=n<=24。
2.求和问题(sum.pas/c/cpp)【题目描述】给定1到n共n个数,你需要找出连续的几个数使得其和为m,显然这样的方案有很多,请将每种方案都输出,输出方法请参考样例。
【输入】第一行两个整数n和m。
【输出】输出有多行,每行表示一种合法的方案,采用闭区间的方式给出方案([a,b]表示a到b 这几个连续的整数),当有多种方案时按照a由小到大输出。
【样例输入】20 15【样例输出】[1,5][4,6][7,8][15,15]【样例说明】1+2+3+4+5 = 154+5+6 = 157+8 = 1515 = 15【数据规模】对于30%的数据,n,m<=100。
对于60%的数据,n,m<=1000000。
对于100%的数据,n,m<=10^12。
3.吃水果问题(eat.pas/c/cpp)【题目描述】老李非常关注小李的饮食问题,给他制定了一长串吃水果清单。
但是小李非常淘气,如果相邻两天吃的水果一样的话,他将会变得非常暴躁,精通编程的你能否帮助老李同志,判断是否存可以将老李的方案修改成让小李不暴躁。
【输入】第一行,一个整数case,表示测试组数对于每组测试数据:第一行,一个整数n,表示吃水果天数。
第二行,共n个空格隔开的数字a i,表示每天吃的水果编号。
【输出】输出共case行,对于每一组测试数据如果存在方案输出Y否则输出N。
宁波市第23届中小学生计算机程序设计竞赛复赛试题(小学组)

宁波市第23届中小学生计算机程序设计竞赛复赛试题(小学组)题目一览关于竞赛中不同语言使用限制的说明一.关于使用Pascal语言与编译结果的说明1.对于Pascal语言的程序,当使用IDE和fpc编译结果不一致时,以fpc的编译结果为准。
2.允许使用数学库(uses math子句),以及ansistring。
但不允许使用编译开关(最后测试时pascal的范围检查开关默认关闭:{$R-,Q-,S-}),也不支持与优化相关的选项。
3.本次比赛允许使用64位整数类型:int64或qword。
1.密码(mima)题目描述【问题描述】在浩浩茫茫的苍穹深处,住着玉帝和他的神仆们,他们闲谈着下界的凡人俗事,对人世间表现的聪明智慧,大加赞赏。
今天他们正在观赏大地风光人情之际,忽然从遥远的东海之滨传来一阵欢笑声,玉帝纵目望去,只见镇海中学内聚集了全宁波的中小学精英学生,他们要干什么呢?原来他们都在做一种破译密码的游戏,人们发现:一根密码棒上的数字加上另一根密码棒上的数字,就是开启天庭司粮库密码锁的的密码。
如:1233+67122=68355,则68355就是一组有效的密码。
“太简单了!”人们高呼起来,继续探索着。
“这不过是早期的密码系统而已。
”玉帝轻蔑地环顾神仆们说道。
可是,当人们演算了139513+3344=142857 后,玉帝的神色愈来愈不对了,要知道,142857是一个特别的数字,这可是天庭的机密,是谁将这些机密泄露给世人的呢?于是,玉帝搬出一张牌,对司粮库主管神农氏说:“将这张牌打出去,看看他们还逞能不?”这是天庭中一张王牌,但平凡得很,只不过将密码的位数增大到不超过200位而已,可是难就难在你看到文件:mima.in中的两个数后,必须在1秒钟内将密码输出到文件:mima.out中,否则这组密码就失效了。
玉帝还算是仁慈的,没有将更难的牌打出来,他想把天庭的粮食恩赐人间,但他绝不会给那些不动脑子的人。
现在请你解开天庭司粮库密码锁的密码,帮助人们获得天庭恩赐的粮食。
2013年宁波市鄞州区信息学竞赛复赛试题(小学组)

鄞州区中小学生计算机程序设计竞赛(2013)复赛试题(小学组)比赛时间:2013年10月15日下午12:30—15:00题目一览注意:一、关于竞赛中编程语言使用的规定参照中国计算机学会公布的《关于NOI系列赛编程语言使用限制的规定》。
二、评测环境为windows。
1.磁铁(magnets)迈克是一个疯狂的游戏迷。
有一天,迈克想玩多米诺骨牌,但他家里没有,于是他采用矩形磁体代替。
每个矩形磁铁有两极:正极(”+”)和负极(“-”)。
如果把两个磁铁水平方向靠近,就会出现“同极相斥、异极相吸”的现象。
(异极相吸)(同极相斥)一开始,迈克在桌子上水平地放上一块磁铁。
接下来,迈克会把磁铁一块接一块的放在原有磁铁的右端。
根据“同极相斥、异极相吸”的原理,迈克每放上一块新磁铁,就有可能出现相吸或者相斥的情况。
如果新磁铁和原磁铁相吸,它就加入到这个组(一个或多个磁铁连接在一起形成一组),如果新磁铁和原磁铁相斥,它就成为一个新组。
如下图,1、2、3块磁铁组成第一组,第4块磁铁单独成为一组,第5、6块磁铁组成一组,所以下图一共有三组:为了描述方便,我们用1表示磁铁的正极(+),用0表示磁铁的负极(-),所以每个磁铁可以用“10”或者“01”来表示。
现在,迈克把他摆放磁铁的顺序告诉你,请帮忙统计出这些磁铁被分为几组?输入(magnets.in)第一行:一个整数 n (1≤ n ≤100000)磁铁数量。
接下来n行:第i行(1≤ i ≤ n)中包含一个01串;“ 01 “表示迈克把第i个磁铁按照“-+”的位置摆放,“ 10 “则表示迈克把磁铁按照“+-“的位置水平摆放。
输出(magnets.out)一行:输出磁铁组的数量。
样例1:输入6101010011010输出3样例2:输入401011010输出2注意第一个测试样例对应于图中。
测试样例有三组,分别包括三个,一个,两个磁铁。
第二个测试样例有两组,每组由两个磁铁组成。
数据范围10%的数据:n<=1050%的数据:n<=10000100%的数据:n<=1000002.差异和(differencerow)小数学迷戴维最近在研究一个问题:对于一个由n个整数组成的序列:a1, a2, ..., a n,把相邻的两个数之间的差:a x–a x+1 (1≤x<n)叫做差异值,把整个数列的所有差异值加在一起:(a1- a2) + (a2- a3) + ... + ( a n -1- a n),叫做差异和,于是不同的排序方法可以得到不同的差异和。
鄞州区小学生计算机程序设计竞赛

鄞州区小学生计算机程序设计竞赛(两小时完成)◆◆请将正确答案在答题卷上填写,在本试题卷上答题无效◆◆一、选择题(1.5*15)1)下列标识符哪个是合法的( )。
A、abcB、x#C、beginD、1a2)下列函数值是整型的是()A.chr(23)B.ord(x)C.pred(x)D.succ(x)3)下列函数值不可能是布尔类型的是()A.odd(g)B.ord(g)C.pred(g)D.succ(g)4)I nteger类型的数据范围是()A.-32767~32767B.0~32767C.-32768~32767D.-32767~327685)设x是实型变量,下列表达式能将x四舍五入后保留三位小数的是()A.round(x)B.round(x)/1000C.round(x*1000)/1000D.round(x*100)/1006)下列表达式的值为FALSE的是()A.Odd(True(7.49))B.Round((Abs(-9.5)))<10C.Not(‘9’<’100’)D.Ord(Chr(Pred(8)))>=77)判断变量ch的值是否为小写字母,下列表达式正确的是()A.not(ch<’a’)or(ch>’z’)B.’a’<=ch<=’z’C.(ch>=a)and(ch<=z)D.ch>=’a’ and ch<=’z’8)表达式Chr(Ord(‘A’)+4))的值是()A.’D’B.‘E’C.69D.1019)设a[1]=1,a[2]=2,a[3]=3,a[4]=4,a[5]=5,a[6]=6,且i=1,j=2,k=3,m=4下列变量的值等于3的是()A.a[i*j]B.a[a[k-i]+3]C.a[m div j]D.a[a[j+k-2]]10)十进制数2011等值于八进制数()A.4033B.3755C.4003 D 3733.11)下列无符号数中,最小的数是()A.(11011001)2B.(31)10C.(37)8D.(2A)1612)十进制算是表达式:5*512+7*64+4*8+5的运算结果,用二进制表示为()A.101101100101B.101111100101C.111111100101D.11101111011113)十进制数13/128可用二进制数码序列表示为()A.1101/1000000B.1101/10000000C.0.001101D. 1011/1000000014)已知二进制数x =(0.1011010)2 ,则[x/4]=( )A.0.01011101B.111101100C.0.00101101D.0.101101015)由4个a,3个b和1个c构成的所有字符串中,包含字串”abc”的共有( )个A.30B.60C.120D.48二、填空题1、基础知识填空(1*10)1)计算机语言分为___________语言、______________语言和____________语言。
宁波市第27届中小学生计算机程序设计竞赛复赛试题(小学组)

宁波市第27届中小学生计算机程序设计竞赛复赛试题(小学组)题目一览一.关于使用Pascal语言与编译结果的说明1.对于Pascal语言的程序,当使用IDE和fpc编译结果不一致时,以fpc的编译结果为准。
2.允许使用数学库(usesmath子句),以及ansistring。
但不允许使用编译开关(最后测试时pascal的范围检查开关默认关闭:{$R-,Q-,S-}),也不支持与优化相关的选项。
3.本次比赛允许使用64位整数类型:int64或qword。
傻瓜电梯(dianti)题目描述所谓傻瓜电梯指的是在响应用户请求时缺乏相应的“智商”,在上升或下降的过程中不能把中途的乘客捎带入电梯,而只会严格按照用户发出请求的先后顺序依次完成任务。
比如,原来电梯在1楼,首先6楼有一位乘客发出请求,要求由6楼乘坐到10楼去,此时电梯马上会上去,但在电梯上升到3楼时,另外一位乘客请求由5楼乘坐到8楼去,傻瓜电梯却不会在上升途中把5楼的乘客捎带上去,而只会先把6楼的乘客送到10楼,然后再下来把5搂的乘客送到8楼。
傻瓜电梯由i楼上升到i+1楼(或下降到i-1楼)的时间都是3秒,每到达一个楼层,不管进出乘客有多少,也不管乘客只有进、只有出或者进出电梯都有,所耽搁的时间都是6秒。
现在味味要根据傻瓜电梯接受到的n个用户请求,编程计算傻瓜电梯把所有乘客送到目标楼层时总共所需要的时间。
如果某批乘客到达目标楼层后,电梯没有马上要响应的请求,则电梯在前一批乘客的目的地等待,这个等待时间也需计入总花费时间。
直到下一批乘客发出新请求,电梯才会从当前位置出发,前往下一批乘客的出发楼层。
输入输入文件dianti.in第一行包含两个整数x(1<=x<=100)和n(1<=n<=100)分别表示傻瓜电梯开始所在的楼层和总共接收到的请求数目。
下面有n行,每行包含3个整数,依次表示该请求发出的时间、乘客目前所在的楼层和将要去的目标楼层。
宁波市第26届中小学生计算机程序设计竞赛复赛试题(小学组)-副本

宁波市第26届中小学生计算机程序设计竞赛复赛试题(小学组)题目一览关于竞赛中不同语言使用限制的说明一.关于使用Pascal语言与编译结果的说明1.对于Pascal语言的程序,当使用IDE和fpc编译结果不一致时,以fpc的编译结果为准。
2.允许使用数学库(uses math子句),以及ansistring。
但不允许使用编译开关(最后测试时pascal的范围检查开关默认关闭:{$R-,Q-,S-}),也不支持与优化相关的选项。
3.本次比赛允许使用64位整数类型:int64或qword。
1.斯诺克(snooker)题目描述镇海中学开设了很多校本选修课程,有体育类、音乐类、美术类、无线电测向、航空航海航天模型制作等,力争使每位学生高中毕业后,能学到一门拿得出手的兴趣爱好,为将来的终身发展打下基础。
在体育类的校本选修课程中,有一门课程是斯诺克台球。
斯诺克台球比赛中有21个球,其中有15个红球,6个彩球(黄、绿、棕、蓝、粉、黑)。
甲乙二人轮流打球。
打一个红球得1分,打一个彩球的得分如下:黄球:2分;绿球:3分;棕球:4分;蓝球:5分;粉球:6分;黑球:7分;最后以得分高者为胜。
简化后的打球规则如下:1.如果有红球,第奇数次必须打红球,打过的红球从桌面上拿走;2.每打一个红球后,可以任意选一个彩球打,打红球后接着打的彩球不从桌面上拿走;3. 如果桌面上已经没有红球可打了,那么按照分值从小到大的次序打彩球,这时候每打一个彩球都从桌面上拿走。
打球时犯规的判罚如下:1. 没有打中球,给对方加4分;2.没有按照打球规则打该打的球,即打中了错误的球时:(1)如果这个错误的球的分值大于4,那么给对方加等于这个球的分值;(2)如果这个错误的球的分值不大于4,那么给对方加4分;打中的错误球不从桌面上拿走。
请统计某局比赛进行到现在为止的比分。
输入输入文件snooker.in的第一行有二个整数n和m,表示甲打了n个球,乙打了m个球。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中小学生计算机程序设计竞赛
复赛试题(小学组)
题目一览
关于竞赛中不同语言使用限制的说明
一.关于使用Pascal语言与编译结果的说明
1.对于Pascal语言的程序,当使用IDE和fpc编译结果不一致时,以fpc的编译结果为准。
2.允许使用数学库(uses math子句),以及ansistring。
但不允许使用编译开关(最后测试时pascal的范围检查开关默认关闭:{$R-,Q-,S-}),也不支持与优化相关的选项。
3.本次比赛允许使用64位整数类型:int64或qword。
1.小李数星星(star)
题目描述
小李在农村长大,那时候大家喜欢晚饭过后在院子里纳凉,听不懂大人在说什么的小李喜欢抬头看天空,尤其是夏天的夜晚,天上的星星又多又亮。
长大后小李进城打工,每当想家的时他还是喜欢抬头看看天,寻找另一边故乡的记忆。
可是大城市里空气质量太差了,雾霾天气横行,天上能看到的星星也越来越少了。
小李每次用一个正方形去覆盖自己所能看到的星星,随着日子的推移,这个正方形越来越小了,悲伤的小李希望你能告诉他这个正方形的面积。
为了让问题变得简单,小李每次只会使用水平放置的正方形来覆盖(不会旋转),具体参照样例解释。
输入
第一行一个整数n,表示星星的数量。
接下来共n行,每行2个正整数(a,b),表示该星星到X轴距离为b,到Y轴距离为a,这些
星星只会位于X轴的上方,Y轴的右方。
输入数据保证存在一个合法的正方形(面积非零)去覆盖这些星星
输出
一个整数,表示能覆盖所有星星的最小正方形的面积。
样例输入
3
1 1
2 1
2 2
样例输出
1
提示
【数据规模】
80%的数据,3<=n<=20, 1<=x<=100, 1<=y<=100
100%的数据,3<=n<=1000, 1<=x<=100000, 1<=y<=100000
2. 小李打台球(ball)
题目描述
在异乡打拼的小李同志迷上了一款叫诺斯克的台球游戏,而且随着练习的深入,他总是能在某些神奇的时刻开启外挂模式,此时小李将指哪打哪,直至无球可打。
现在小李想让你帮他计算下当他开启外挂模式的时候最多可以取得多少分数。
注意:台面上的球数经常会异于传统斯诺克。
斯诺克比赛的基本规则如下:
一、彩球共分8种颜色,红(1分)、黄(2分)、绿(3分)、棕(4分)、蓝(5分)、粉(6
分)、黑(7分)、白(主球,控制白球来打其余球)。
二、当台面上有红球的时候你必须先击打一个红球,然后能且只能击打一个彩球(不包括红球),
此时落袋的彩球将会被放回桌面,一直重复该过程。
三、当打完规则二的彩球(不包括红球)发现已经没有红球时,按照彩球的分值从低到高将其依
次击入袋中。
输入
输入仅有一行,共7个用空格隔开的整数,分别为当前台面上红、黄、绿、棕、蓝、粉、
黑球的数目。
输出
输出仅有一行,共 1 个整数,表示小李可以得到的最高分。
样例输入
2 0 1 0
3 0 2
样例输出
48
提示
【样例说明】
台面上共有红球2个、绿球1个、蓝球3个、黑球2个,获得最高分的打法是红-黑-红-黑-绿-蓝-蓝-蓝-黑-黑,共可以获得48分。
【数据规模】
保证最后得分不会超过231-1。
3. 小李发奖金(money)
题目描述
当然打台球只是小李的休闲娱乐活动,对待他的本职工作,他还是非常兢兢业业的。
但是小李的老板是个周扒皮,每次都想克扣小李的工资和奖金,甚至制定出非常奇葩的规则。
又到了每年发年终奖的时候了,今年老板的规则是这样的:给你n个数,每次你可以对任意一个数加1,直到所有的数都不相等为止,每加一次都要花费一定数额的费用。
为了小李的幸福生活,聪明的你可否帮助小李,让他尽量少扣钱。
输入
第一行n,表示共有n个数。
第二行共n个用空格隔开的非负整数ai。
输出
仅一个整数,表示加到让每个数都不相等的最少次数。
样例输入
4
1 1 3 2
样例输出
3
提示
【样例说明】
让1+1+1+1 = 4,给定的数字变成4,1,3,2。
【数据规模】
30%的数据,1<=n<=10
60%的数据,1<=n<=1000
80%的数据,1<=n<=30000,ai<=1000,
100%的数据,1<=n<=30000,ai<=1000000。
4. 小李打怪兽(monster)
题目描述
小李对故乡的思念全部化作了对雾霾天气的怨念,这引起了掌控雾霾的邪神的极大不满,邪神派去了一只小怪兽去对付小李,由于这只怪兽拥有极高的IQ,它觉得直接消灭小李太没有难度了,它决定要和小李在智力水平上一较高下。
我们可否帮助小李来战胜强大的怪兽呢?
问题是这样的:给定一堆正整数,要求你分成两堆,两堆数的和分别为S1和S2,谁分的方案使得
S1*S1-S2*S2的结果小(规定S1>=S2),谁就将获得胜利。
注:S2可以等于0。
输入
第一行n,表示共有n个数
第二行共n个用空格隔开的正整数ai,表示给定的一堆正整数。
输出
输出就一个整数,表示S1*S1-S2*S2 的最小值。
样例输入
4
1 2 3 4
样例输出
提示
【样例说明】
1和4一堆,2和3一堆,5*5-5*5 = 0 【数据规模】
60%的数据,1<=n<=20
80%的数据,1<=n<=50,ai<=20 100%的数据,1<=n<=100,ai<=100。