中小学生计算机程序设计竞赛.docx

上传人:b****3 文档编号:5446799 上传时间:2023-05-08 格式:DOCX 页数:7 大小:43.09KB
下载 相关 举报
中小学生计算机程序设计竞赛.docx_第1页
第1页 / 共7页
中小学生计算机程序设计竞赛.docx_第2页
第2页 / 共7页
中小学生计算机程序设计竞赛.docx_第3页
第3页 / 共7页
中小学生计算机程序设计竞赛.docx_第4页
第4页 / 共7页
中小学生计算机程序设计竞赛.docx_第5页
第5页 / 共7页
中小学生计算机程序设计竞赛.docx_第6页
第6页 / 共7页
中小学生计算机程序设计竞赛.docx_第7页
第7页 / 共7页
亲,该文档总共7页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

中小学生计算机程序设计竞赛.docx

《中小学生计算机程序设计竞赛.docx》由会员分享,可在线阅读,更多相关《中小学生计算机程序设计竞赛.docx(7页珍藏版)》请在冰点文库上搜索。

中小学生计算机程序设计竞赛.docx

中小学生计算机程序设计竞赛

江北区第九届中小学生计算机程序设计竞赛

比赛时间:

2016年1月9日下午13:

30—16:

00

题目一览

试题名称

数列(S)

伙伴(friend)

搭积木(block)

游园礼物(yylw)

英文代号

S

friend

block

yylw

程序名

s.cpp/pas/c

friend.cpp/pas/c

block.cpp/pas/c

yylw.cpp/pas/c

输入文件名

s.in

friend.in

block.in

yylw.in

输出文件名

s.out

friend.out

block.out

yylw.out

内存限制

128MB

128MB

128MB

128MB

时限

1S

1S

1S

1S

注意:

一、关于竞赛中编程语言使用的规定参照中国计算机学会公布的《关于NOI系列赛编程语言使用限制的规定》。

二、评测环境为windows。

 

1.数列(s.pas/cpp/c)

【问题描述】

有一列数:

1,1,3,8,22,60,164,448……其中的前三个数是1,1,3,从第四个数起每个数都是这个数前面两个数之和的2倍。

那么,你可以很容易地得到这个数列中的第K个数是多少。

【输入s.in】

只有一行,一个数k,表示要询问的是数列中的第k个数。

【输出s.out】

只有一行,一个数n,表示数列中的第k个数的值是n。

【输入样例】

5

【输出样例】

22

【数据规模】

30%的数据,1<=k<=8

100%数据,1<=k<=45

 

2.伙伴(friend.pas/cpp/c)

【问题描述】

近来,程序社团开始“创客”——用程序来开发一种“找伙伴的数字游戏”。

这个伙伴游戏将玩家分为A和B二组。

每组每个玩家可以得到一个数字号码。

游戏规则是这样的:

A组里的每个人的数字与B组里每个人的数字进行“数字配对”——即加法运算,若运算的结果恰巧是B组内其他玩家手捏的数字号码,那么游戏就可以累计一个分值,这个分值就是B组内这个“恰巧”的数字号码。

当然,在B组内“恰巧”的数字号码可能不止一个,游戏允许再次累计。

比如加法运算后的“恰巧”的数字是3,而B组内共有2个玩家捏有此数字,那么本组就可以得到6分。

你是游戏的开发者之一,你需要迅速计算出找伙伴游戏的最终得分。

【输入friend.in】

第一行有二个数字n和m,分别表示A组和B组的人数。

第二行有n个整数ai,每个整数之间有一个空格,表示n个玩家手中的数字号码。

第三行有m个整数bi,每个整数之间有一个空格,表示m个玩家手中的数字号码。

【输出friend.out】

只有一行,一个数字s,表示游戏的最终分数。

【输入样例1】

33

356

274

【输出样例1】

14

样例说明:

A组内捏有”3”的玩家与B组内三个玩家进行“数字配对”,遇4时相加后,发现B组内有一个恰巧的数字“7”;

A组内捏有“5”的玩家与B组内三个玩家进行“数字配对”,遇2相加后,发现B组内有一个恰巧的数字“7”;

当A组内捏有“6”的玩家与B组内三个玩家进行“数字配对”,无论与谁的数字相加,都没有在B组发现一个恰巧的数字;

因此最终结果是:

7+7=14。

【输入样例2】

33

252

688

【输出样例2】

32

样例说明:

A组第1玩家捏有数字”2”,与B组进行“数字配对”时,得分8+8;

A组第2玩家捏有数字”5”,与B组进行“数字配对”时,得分0;

A组第3玩家捏有数字”2”,与B组进行“数字配对”时,得分8+8;

因此最终得分为:

8+8+8+8。

【数据规模】

30%的数据,1<=n,m<=3,1<=ai,bi<=100

50%数据,1<=n,m<=100,1<=ai,bi<=100

70%数据,1<=n,m<=10000,1<=ai,bi<=100

100%数据,1<=n,m<=100000,1<=ai,bi<=100

 

3.搭积木(block.pas/cpp/c)

【问题描述】

今天是个特殊的日子,妈妈不在家,已经上中学的明明,要独自一人照顾弟弟。

为了让弟弟开心(顺便提高一下弟弟的数数能力),明明发明了一个积木新玩法:

给桌子上的积木从1到10编号,明明会把特定的积木块叠到一起,在叠的过程当中,不能把积木拆开,也就是说,在操作过程中,必须以整个积木块为单位(一开始所有积木都是分开的)。

比如把3号叠到2号上面,再把4号叠到2号上面的操作步骤是这样的:

第一步:

把3号叠到2号上面

第二步:

把4号叠到2号上面,因为不能拆分,所以要把2号所在的整个积木块都叠到4号下面

在这个过程当中,明明报数字,比如明明报3,弟弟要说出在3号积木块下面有几块积木。

作为小小程序员的你,能解决这个问题么?

当然啦,为了提高难度,积木块的数量可不只10个哦。

【输入block.in】

输入只有一个整数n,表示下面有n组操作。

接下来输入n行,包含两种操作:

Mab:

M操作符表示要把a号积木所在的积木块叠放在b号积木所在的积木块上方

Ca:

C操作符表示询问a号积木下方有几块积木。

【输出block.out】

输出包括多行,每行包含一个数字,表示一个询问的答案。

【输入样例1】

6

M32

C2

C3

M42

C4

C3

【输出样例1】

0

1

2

1

【数据规模】

对于60%的数据,1

对于100%的数据,1

 

4.游园礼物(yylw.pas/cpp/c)

【问题描述】

新年到了,学校里组织了有趣的游园活动!

每个活动场地都被设计成一个三角形,在三角形的每个点位都设有一台机器人给同学们派发礼物。

每个机器人派发的礼物数量是各不相同的,但同一个机器人每次派发礼物的数量是不变的。

小王有其中一张活动场地地图,如图。

活动要求小王从三角形顶部出发,向下行走获取礼物,但到一个点位后,只能选择向左走或向右走,一直走到最底层,并且有一个指定的点位,是规定必须经过的,如图红色的2,2点是必须要经过的点。

小王该怎么走才能使自己获得的礼物数量最多呢。

请你帮小王计算下,他最多能获得的礼物数是多少呢?

【输入yylw.in】

第1行只有一个整数n,表示n行;

第2到n+1行,为每个点位机器人一次派发礼物的数量,数字之间有一个空格;

第n+2行有两个数x和y,表示必须经过的点。

【输出yylw.out】

礼物数量总和的最大值

【输入样例】

5

7

38

810

2744

45265

22

【输出样例】

28

【数据规模】

30%的数据,1<=n<=25,必须经过的点位(x,y)固定为x=ndiv2,y=ndiv2;

100%数据,1<=n<=100;必须经过的点位(x,y)为场地中任意点位;

由于活动经费有限,单个机器人单次能够派发礼物的数量保证在1000以内;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2