2009年宁波市信息学竞赛复赛试题(初中组)_第1页
2009年宁波市信息学竞赛复赛试题(初中组)_第2页
2009年宁波市信息学竞赛复赛试题(初中组)_第3页
2009年宁波市信息学竞赛复赛试题(初中组)_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、宁波市第24届中小学生计算机程序设计竞赛复赛试题(初中组)第2页共5页宁波市第24届中小学生计算机程序设计竞赛复赛试题(初中组)比赛时间:2009 年4月11日上午9:00 12:00试题名称冰壶比赛分数统计平力数探险输入文件名Curling.incount.insquare.inexplore.in输出文件名Curling.outcount.outsquare.outexplore.out内存限制128 MB128 MB128 MB128 MB时限1秒1秒1秒1秒关于竞赛中不同语言使用限制的说明1 .关于使用Pascal语言与编译结果的说明1 .对于Pascal语言的程序,当使用IDE和fp

2、c编译结果不一致时,以 fpc的编译结果为准。2 .允许使用数学库(uses math 子句),以及ansistring 。但不允许使用编译开关(最后测试时 pascal的范围检查 开关默认关闭:$R-,Q-,S-),也不支持与优化相关的选项。2 .关于C+语言中模板使用的限制说明1 .允许使用的部分:标准容器中的布尔集合,迭代器,串,流。相关的头文件: <bitset > iterator > string > <iostream >2 .禁止使用的部分:序歹U: vector , list , deque序歹1J适配器:stack, queue, pri

3、ority_queue关联容器:map, multimap, set, multiset拟容器:valarray散列容器:hash_map, hash_set, hash_multimap, hash_multiset所有的标准库算法相关头文件: Vvector > <list > deque > <stack > <map > <set > <algorithm >题 1 .冰壶比赛(Curling.pas/c/cpp)【问题描述】在3月29日举行的女子冰壶世锦赛决赛中,王冰玉、柳荫、岳清爽和周妍组成的中国女子冰壶队以8

4、比6击败了冬奥会和世锦赛双冠王瑞典队,夺得了中国冰壶历史上第一枚世锦赛金牌,创造了历史。美丽、实力兼具的中国冰壶姑娘们也赢得了超高的赞誉。在冰壶比赛中,给出一个目标点P,以及一个规定的正整数r。每一局由甲乙两队轮流投冰壶各8次后,该局比赛结束。此时,哪一方的冰壶最终离 目标点P更近,该方得分,另一方不得分。得分方每 颗离目标点P距离小于或等于r、位置较另一队所有冰壶都更接近目标点P的冰壶都可以得1分。比赛最多进行10局。双方之间的某局比赛结束后,落后一方可以弃权。 此时,比赛不再进行下去。已知每一局结束时,双方的每个冰壶离 目标点P的距离,以及正整数r,请你写一个程序判断两队 之间每一局比赛的

5、得分,以及总得分。【输入】输入文件 Curling.in的第一行只有一个正整数r。以下有若干行(不超过20行),除了最后一行外,每一行有8个正整数(互相之间以一个空格分隔)。第2行的第j个数表示第1局比赛结束时,甲方的第j个冰壶距离 目标点P的距离;第3行的第j个数表示第 第4行的第j个数表示第 第5行的第j个数表示第1局比赛结束时,乙方的第2局比赛结束时,甲方的第2局比赛结束时,乙方的第j个冰壶距离目标点P的距离; j个冰壶距离目标点P的距离; j个冰壶距离目标点P的距离;第2k行的第j个数表示第k局比赛结束时,甲方的第j个冰壶距离目标点P的距离;第2k+1行的第j个数表示第k局比赛结束时,

6、乙方的第 j个冰壶距离 目标点P的距离;如果有一方中途弃权,则最后一行(偶数行)只有一个整数-1 ,表示此时发生弃权情况。【输出】输出文件 Curling.out 有若干行,每行有二个整数,中间以一个冒号分隔,表示每一局比赛甲 乙双方的比分(甲得分在前)。(甲得分在前)。【样例输入1185 2018193 15133202 17125 18101120 3 41 2 119 24 15199 8 141110152 101191431815172119243219265 1 1413152 31114 7 5191012 6 93 14 98 4 8 3 1014 6 94 8 2 1 59

7、8 128 8 7 1816 8 2019 3 1 1052 13192 189 1836 5 5 20 6 172 1817 3 206 9 3 171720 10812191918 2015 1841817145 166 14 814197 13715 9 28 203 10148 6 3 24 114 10【样例说明】【样例输出1】0:14:03:03:00:20:00:03:02:00:015:352018193151332021712518101120341 211924151998 1411101521011914318【样例输入2】81517211924321926-1【样例输出

8、2】0:14:03:07:1最后一行有二个整数,中间以一个冒号分隔,表示甲乙双方比赛的最终得分宁波市计算机学会,2009在样例1中和样例2中:第1局比赛,甲方离 目标点P的最近距离为3,乙方离目标点P的最近距离为2,乙方得分。乙 比甲方的3更小的值只有1个(值为2壶),因此乙方得1分。第3局比赛,甲方离目标点P的最近距离为1,乙方离目标点P的最近距离为15,甲方得分。甲比乙 方的15小的值有5个(2、10、1、14、3),但小于等于r=8的值只有3个(2、1、3),因此甲得3分。样例1进行完了所有10局比赛,总得分为15:3。样例2比赛进行了 3局后,乙方弃权了,比赛到 此结束,最终比分为已经

9、进行过的前3局比分之和7:1。【数据限制】70%的数据,双方均不弃权,比赛进行 10局。100%的数据,每只冰壶距离目标点P的距离不超过100 。宁波市第24届中小学生计算机程序设计竞赛复赛试题(初中组)第3页共5页题 2 .分数统计(count.pas/c/cpp)【问题描述】学校为了控制作业量,实施“轻负担,高质量”的有效教学,对所有在校学生的作业量情况进行了 调查。每个学生对每门课的日均作业时间进行评价。最后统计出每门课的日均作业时间的平均值,作为 学校评价习题教学效果的一个重要参考。为了避免个别学生不客观评价的影响,学生的打分必须为1至100间的正整数,如果某个打分为不在此范围内的整数

10、,则忽略。现在要求完成:(1)统计出每门课的日均彳业时间的平均值;(2)除去每门课中作业时间最多的和最少的10% 的学生(四舍五入)后,统计平均值。请你写个程序,完成以上任务。(提示:Pascal语言中,Round(x)为四舍五入函数,在C语言中可使用int(x+0.5)【输入】输入文件 count.in 的第1行有2个正整数n,m(以一个空格分隔)。表示有n个人,m门课。第2行至第n+1行,每行有m个正整数,表示学生对每门课日均作业时间的评价,每个整数之间以一个空格分隔。其中:第k+1行的第j个数表示第k个学生填写的第j门课的日均作业时间;【输出】输出文件 count.out 有2行,每行有

11、m个数(保留2位小数,每行的各个数之间以一个空格 相互分隔),表示每门课日均作业时间的平均值。其中:第1行的第j个数表示所有合法填写学生的第j门课的日均作业时间的平均值;第2行的第j个数表示除去10%最多合法时间和10%最少合法时间的学生后, 所有合法填写学生 第j门课的日均作业时间的平均值;【样例输入】10 1160 6970 7380 8790 91100 100【样例输出】68.33 75.8675.00 84.00【样例说明】第1门课所有学生日均作业时间平均值为:(10+60+70+80+90+100)/6=68.33第2门课所有学生日均作业时间平均值为 :(11+69+73+87+9

12、1 + 100+100)/7=75.8610% 的学牛数为:7*10%=0.7=1(四舍五入至整数)除最高和最低学生外,第1门课日均作业时间平均值为:(60+70+80+90)/4=75.00除最高和最低学生外,第2门课日均作业时间平均值为:(69+73+87+91 + 100)/5=84.00【数据限制】70%的数据,5100%的数据,5 的学生总数保证大于<n< 1000 ;<n< 50000, 1 w m w 6,学生填写的数据保证为 整数,合法填写 10%的学生数(四舍五入至整数后)的2倍。110 100题 3 . 平方数(square.pas/c/cpp)【问

13、题描述】珍珍在学习乘法时,发现 4=2*2,9=3*3,,而2不可能分解为二个整数的乘积,但可以分解为1*1+1*1。她想知道对任意的整数n,把它分解为几个整数与自身相乘之和,有多少种方案呢?【输入】输入文件square.in只有一行,该行只有一个正整数n。【输出】输出文件square.out 只有一行,该行只有一个正整数,表示总方案数。【样例说明】4有2种分解方案,它们是:4=1*1 + 1*1+1*1 + 1*1=2*213有6种分解方案,它们是:13=1*1 + 1*1 + 1*1 + 1*1 + 1*1 + 1*1 + 1*1+1*1 + 1*1+1*1 + 1*1 + 1*1 + 1

14、*1=1*1+1*1 + 1*1+1*1 + 1*1 + 1*1 + 1*1 + 1*1+1*1+2*2=1*1 + 1*1 + 1*1 + 1*1 + 1*1+2*2+2*2=1*1 + 1*1+1*1 + 1*1+3*3【样例输入【样例输出【样例输入2】13【样例输出2】宁波市计算机学会,2009=1*1+2*2+2*2+2*2=2*2+3*3宁波市第24届中小学生计算机程序设计竞赛复赛试题(初中组)第4页共5页【数据限制】20% 的数据,1 w nw 10;50%的数据,1 & n曷00;80% 的数据,1 & n800;100% 的数据,1 & n<200

15、0 。题 4 . 探险 explore.pas/c/cpp【问题描述】有n个同学一起去探险,现在把n个同学分成k个小组,每个小组完成一项探险任务。分组时 ,如果 第i人与第j人分在同一组(i<j),则他们之间的所有人(第i+1,i+2,j-1个)也必须在同一个小组中。一个小组内所有人的体力和越小,途中可能越危险。为了确保每个同学的安全,要求分组时,使得所有小组中,体力和最小的那个小组的所有人的体力和尽量大。依次告诉你每个人的体力,如何分组呢?【输入】输入文件explore.in 的第1行有二个正整数 n和k,互相之间以一个空格分隔。第2行有n个正整数(互相以一个空格分隔),表示n个人的体

16、力值。其中第j个整数表示第j个人 的体力值。【输出】输出文件explore.out 中只有1行,该行只有一个整数,表示最佳划分方案中,最弱的小组中,所有人的体力值之和。【样例输入1】5 25 2 1 6 9【样例输出1】9【样例输入2】5 35 2 1 6 9【样例输出2】7【样例输入3】5 45 2 1 6 9【样例输出3】3【样例说明】共有5个人,他们的体力值分别为:5、2、1、6、9。(1 )分成2个小组时,第1小组由前4个人组成,第2小组由第5个人单独组成,此时最弱小组 的体力和为9 (其它划分方案时最弱小组的体力和都小于9)。(2)分成3个小组时,第1小组由前2个人组成,第2小组由第3、第4两人组成,第3小组 由第5个人单独组成,此时最弱

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论