宁波市第25届中小学生计算机程序设计竞赛复赛试题(小学组)
宁波市第28届中小学生计算机程序设计竞赛复赛试题(小学组)

宁波市第28届中小学生计算机程序设计竞赛复赛试题(小学组)题目一览关于竞赛中不同语言使用限制的说明一.关于使用Pascal语言与编译结果的说明1.对于Pascal语言的程序,当使用IDE和fpc编译结果不一致时,以fpc的编译结果为准。
2.允许使用数学库(uses math子句),以及ansistring。
但不允许使用编译开关(最后测试时pascal的范围检查开关默认关闭:{$R-,Q-,S-}),也不支持与优化相关的选项。
3.本次比赛允许使用64位整数类型:int64或qword。
1.哈夫曼编码(coding)题目描述哈夫曼编码是一种编码方式,是可变字长编码的一种,由Huffman 于1952 年提出。
该方法完全依据字符出现概率来构造异字头的平均长度最短的码字,有时称之为最佳编码,一般就叫Huffman 编码。
简单地来说,就是出现概率高的字符使用较短的编码,反之出现概率低的则使用较长的编码,这便使编码之后的字符串的平均期望长度降低,从而达到无损压缩数据的目的。
现在请你模拟这样的原则对给定的一个字符串进行字母统计。
输入输入文件coding.in,只有一行,是一个字符串,由小写英文字母组成,长度不超过255 个字符。
输出输出文件coding.out,有若干行,每行有两部分组成:一个字母和该字母出现的频率,中间用一个空格分隔,并按频率高低排列,频率相同时则按字母的ASC 码的先后顺序排列。
样例输入soon样例输出o 2n 1s 12. 立方和(cubsum)题目描述现给出一个三位数,先对这个三位数的各位数字的立方求和,然后再对求出的和中的各位数字的立方求和,如此一直继续下去,判断最后能否得到一个不再变化的固定值。
如能得到一个固定值,就求出这个固定值;如果不能,则输出提示信息“error” 。
另外请注意,在求解过程中,若某一次求和过程中得到的值超过三位数,则取该数的低三位继续往下运算……例如,对于三位数111,则第一次计算应是1×1×1+1×1×1+1×1×1=3,第二次计算应是0×0×0+0×0×0+3×3×3=27,第三次计算应是0×0×0+2×2×2+7×7×7=351,第四次计算应是3×3×3+5×5×5+1×1×1=153,第五次计算应是1×1×1+5×5×5+3×3×3=153,与第四次计算的结果相同,这时可不再计算,输出固定值153。
宁波市计算机程序设计竞赛2010-2016年复赛后三题

2010-2016后三题31届201630届201529届2014马农题目描述兄弟两回到草原,将可以养马的区域,分为N*N的单位面积的正方形,并实地进行考察,归纳出了每个单位面积可以养马所获得的收益。
接下来就要开始规划他们各自的马场了。
首先,两人的马场都必须是矩形区域。
同时,为了方便两人互相照应,也为了防止马匹互相走散,规定两个马场的矩形区域相邻,且只有一个交点。
最后,互不认输的两人希望两个马场的收益相当,这样才不会影响他们兄弟的感情。
现在,兄弟两找到你这位设计师,希望你给他们设计马场,问共有多少种设计方案输入格式:第一行一个整数N,表示整个草原的大小为N*N。
接下来N行,每行N个整数A(i,j),表示第i行第j列的单位草地的收成。
(注意:收益可能是负数,养马也不是包赚的,马匹也可能出现生病死亡等意外。
)输出格式:输出符合两人要求的草原分配方案数。
输入样例#1:31 2 34 5 67 8 9输出样例#1:2N<=50,-1000<A(I,J)<100028届2013分数统计【题目描述】在统计完朋友情况之后,小明又对大家的毕业学校产生兴趣,但是他觉得单纯的统计人数是一件非常无聊的事情,于是他设计了一个算法,同一所学校毕业的学生,第1个将获得1分,第2个获得2分,第3个获得4分…,第i个将获得2 i-1 分,总分就是这所小学的得分,小明想知道得分最高的学校有多少分。
【输入】输入文件 score .in的第一行有两个整数n和m,n表示总人数,m表示已知的同校关系数量。
接下来n行,每行有2个以空格隔开的整数a和b,表示a和b是来自同一所学校,a和b 均为1到n之间的整数。
不会给出重复的信息。
【输出】输出文件 score .out 只有一行,为所有学校中的最高得分。
最后得分可能会很大,你只需要输出后 100 位即可,不足 100 位的请直接输出。
【样例输入】5 31 23 41 3【样例输出】15【样例说明】1、2、3、4来自同一所学校,该所学校所得的分数为1+2+4+8=15【数据规模】60%的数据,1 <= n <= 1080%的数据,1 <= n <= 70100%的数据,1 <= n <= 10000,1 <= m <= 100000跳棋【题目描述】小明迷恋上了一个新的跳棋游戏,游戏规则如下:棋盘是一排从0开始,顺序编号的格子,游戏开始时你位于0号格子,你每次只能往编号大的格子跳,而且你每次至少需要跳过L个格子,至多只能跳过R个格子。
宁波市第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。
小学生计算机程序设计竞赛试卷及参考答案

小学生计算机程序设计竞赛试卷及参考答案1、下列表达式的值为FALSE 的是( )。
A. Not( ‘90' '100 ')B.Round((Abs(-10.5))) 10C. Odd(True(98.49))D.Ord(Chr(Pred(8))) =72 、判断变量ch 的值是否为大写字母,下列表达式正确的是( )。
A. ch = 'A' and ch = 'Z'B.'A' =ch = 'Z'C.(ch =A)and(ch =Z)D. not(ch 'A' )or(ch ' Z')3、表达式Chr(Ord( ‘ a')+5)) 的值是( )。
A.'f 'B.‘E'C.102D.1014、与十进制数2014 等值的二进制数是( )。
A.11111011110B.11110011110C.10111111110D.111111110105、[x] 补码=10011101 ,其原码为( )。
A.11001111B.11100100C.11100011D.011001016、十进算术表达式:5*512+7*64 +4*8 +7 的运算结果,用二进制表示为( )。
A. 101111100111B.1111111001017、(2014)16 + (924)10 的结果是( )C. 111110100101D.1111110110117、(2014)16 + (924)10 的结果是( )A. (9036)10B. (23B0)16C. (9130)10D. (100011000110)2二、计算下列函数(1*15)1、Sqr (7)的值为( )。
2、Round(19.6) 的值为( )。
3、Round(14.4) 的值为( )。
4、int(-5.7) 的值为( ) 。
宁波小学生程序复赛复习指导

主要题型:
模拟题
整数模拟 排序 字符串模拟
高精度运算 数学运算
深度优先搜索dfs
搜索题
广度优先搜索bfs
动态规则题
01背包 完全背包
宁波市近三年历届试卷分析
2014年第一题 小李数星星 2014年第二题 小李打台球 2014年第三题 小李发奖金 2013年第一题 哈夫曼编码 2013年第二题 立方和 2013年第三题 智力大奖赛 2013年第四题 求素数
模拟题
2012年第一题 傻瓜电梯 2012年第二题 数字替换 2012年第三题 取珠子 2012年第四题猜数字
搜索题
2014年第四题 小李打怪兽
深度优先搜索dfs 广度优先搜索bfs 01背包 完全背包
动态规则题
整数模拟
2014年第一题 小李数星星(简单模拟) 2014年第二题 小李打台球(一维数组模拟) 2013年第二题 立方和 (一维数组模拟)
数学运算模拟
2013年第三题 智力大奖赛(简单数学题) 2012年第四题猜数字(数学组合题)
高精度运算
23届宁波市小学生计算机程序设计竞赛第一题
搜索题
2008年第四题 导游 深度优先搜索dfs 2007Leabharlann 第二题 等式 2007年第三题 旅行
广度优先搜索bfs
2011年第四题 利比亚行动
动态规则题
代码如下:
这题属于算法多解,由于范围的限定也可以用计数排序
var n,sum:int64;i:longint; a:array[1..30000] of longint; b:array[0..1030000] of longint; begin read(n); for i:=1 to n do begin read(a[i]); inc(b[a[i]]); end; for i:=0 to 1030000 do if b[i]>1 then begin sum:=sum+b[i]-1; b[i+1]:=b[i+1]+b[i]-1; end; writeln(sum); end.
宁波市第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.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)计算机语言分为___________语言、______________语言和____________语言。
- 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. 折纸(folding)
【题目描述】
小猪上幼儿园的时候,报名参加了折纸兴趣小组。
他表现出了极大的热情,折出了n件折纸作品。
他的作品只有3种,分别是长方形、正方形和三角形。
小猪很想知道他的n件折纸的周长之和。
【输入】
输入文件folding.in的第一行只有一个整数n,表示共有n件作品。
接下来n行,每行有若干个以空格分隔的整数,表示一件作品的情况。
其中第一个整数k (k=1或2或3),表示小猪制作的这件作品的类型,1表示长方形,2表示正方形,3表示三
a
b c
三边长度分别为
a,b,c的三角形,
周长为a+b+c 相邻边长度分别为a和b
的长方形,周长为2a+2b
b
形,周长为4a
a
a
角形。
如果k为1,后面会跟二个正整数a和b,表示长方形的二条相邻边的长度分别为a和b;
如果k为2,后面会跟一个正整数a,表示正方形的四条边的长度均为a。
如果k为3,后面会跟三个正整数a、b和c,表示三角形三条边的长度分别为a、b和c(输入数据保证a,b,c能构成三角形,不需验证)。
【输出】
输出文件folding.out中仅有一行,该行只有一个整数,表示所有作品的周长之和。
【样例输入】
3
1 2 3
2 4
3 6 7 8
【样例输出】
47
【样例说明】
共有3件作品:
第一件作品:二条相邻边长度分别为2和3的长方形;
第二件作品:边长为4的正方形;
第三件作品:三条边长度分别为6、7、8的三角形。
这3件作品的周长分别为10、16、21,它们的周长之和为47。
【数据规模】
50%的数据,1≤n≤50,所有边长为不超过100正整数。
100%的数据,1≤n≤100000,所有边长为不超过100000的正整数。
2. 方格稿纸(paint)
【题目描述】
小猪在小学中认识了很多的字,终于会写一点作文了。
某天小猪买了一张方格稿纸来写作文,n 行m 列,形状如下所示:
上图中n=m=5。
某天小猪的邻居小小猪来小猪家玩,用黑墨水笔把小猪新买的方格稿纸涂黑了很多格子。
每个格子不是完全黑色就是完全白色,如下图所示。
小猪不能责怪小小猪。
作文写不成了,他觉得很无聊,就开始数里面有多少魔幻方阵。
如果稿纸中一个k ×k 的正方形区域满足以下两个条件,那么它就是魔幻方阵: 1.黑白格子的数量差不能超过1; 2.k 不能小于2。
上图染色后的方格稿纸共有9个魔幻方阵(6个2×2的魔幻方阵,3个3×3的魔幻方阵),现在请你帮小猪求出他被染色的稿纸里面有多少个魔幻方阵。
【输入】
输入文件paint.in 中的第一行有二个正整数n 和m (互相之间以一个空格分隔),表示稿纸共有n 行m 列。
接下来n 行,每行有m 个0或1的整数(互相之间以一个空格分隔),代表每个格子的颜色。
如果这个数是1则为黑色,是0则为白色。
【输出】
输出文件paint.out 中仅有一行,该行只有一个整数,表示稿纸中魔幻方阵的个数。
【样例输入】
5 5
1 0 1 1 1
1 0 1 0 1
1 1 0 1 1
1 0 0 1 1
1 1 1 1 1
【样例输出】
9
【数据规模】
50%的数据,1≤n≤10,1≤m≤10;
75%的数据,1≤n≤180,1≤m≤180;
100%的数据,1≤n≤300,1≤m≤300。
3. 教室外的风景(scene)
【题目描述】
小猪上初中了,初中真好啊,有很多自修课哦。
很多同学喜欢在自修课时到教室外面去,说是到老师那问问题 。
学校规定,自修课到教室外去的每个同学都必须做好登记,每次进出教室的登记是以一对整数a和b来描述的,表示某一个同学在时刻a时到教室外面,在时刻b以后回到教室内。
也就是说在时刻a至时刻b的这段时间中,这个登记的同学一直在教室外面。
校长想知道最多有多少同学在同一时刻都在教室外面,但同学们进进出出教室的记载实在很乱,于是校长请参加信息学兴趣小组的小猪来统计。
【输入】
输入文件scene.in中的第一行只有一个整数n,表示共有n个同学进出教室的记载。
接下来n行,每行二个整数a和b,表示有一个同学在第a时刻出了教室,他在第b时刻后回到教室。
【输出】
输出文件scene.out中仅有一行,该行只有一个整数,表示最多有多少同学在同一时刻都在教室外面。
【样例输入】
4
2 6
8 9
1 5
1 2
【样例输出】
3
【样例说明】
第一个同学在时刻2到教室外面,在时刻6后回到教室;
第二个同学在时刻8到教室外面,在时刻9后回到教室;
第三个同学在时刻1到教室外面,在时刻5后回到教室;
第四个同学在时刻1到教室外面,在时刻2后回到教室;
因此在时刻2时,最多有3个同学(第一个、第三个和第四个)在教室外面。
【数据规模】
50%的数据中,1≤n≤1000;每个同学进出教室的时刻a和b满足:1≤a≤b≤1000;
100%的数据中,1≤n≤100000,1≤a≤b≤100000000。
4. 瓶子涂色(bottle)
【题目描述】
小猪上小学的时候,一度对颜色非常感兴趣,虽然他的美术非常糟糕。
有一次他喝完n瓶饮料把透明的瓶子排成一排,想把这些饮料瓶子都涂上颜色。
他觉得如果所有相邻的两个瓶子颜色都不一样的话会比较有趣。
他现在只有红色(Red)、绿色(Green)和蓝色(Blue)这三种颜料。
由于瓶子的大小和表
面材质不同,在不同的瓶子上涂不同的颜色需要的花费都不一样。
小猪统计了一下,把第i个瓶子染成红色需要Ri元钱,染成绿色需要Gi元钱,染成蓝色需要Bi元钱。
现在请你帮他计算出要使相邻两个瓶子的颜色都不一样,他至少需要多少花费。
【输入】
输入文件bottle.in中的第一行只有一个整数n,表示共有n只瓶子。
第二行有n个正整数(以一个空格分隔),第i个数Ri表示把第i个瓶子染成红色需要Ri元钱。
第三行有n个正整数(以一个空格分隔),第i个数Gi表示把第i个瓶子染成绿色需要Gi元钱。
第四行有n个正整数(以一个空格分隔),第i个数Bi表示把第i个瓶子染成蓝色需要Bi元钱。
【输出】
输出文件bottle.out中仅有一行,该行只有一个整数,表示最小花费。
【样例输入】
5
1 3 1
2 2
1 2 3 4 3
4 2 1
5 3
【样例输出】
9
【数据规模】
30%的数据中,1≤n≤10;
70%的数据中,1≤n≤30;
100%的数据中,1≤n≤100000,1≤Ri, Gi, Bi≤100。