dfs_service_2013年海淀区中小学生信息学奥林匹克竞赛)——小学组试题

合集下载

2012年海淀区中小学生信息学奥林匹克竞赛

2012年海淀区中小学生信息学奥林匹克竞赛

2012年海淀区中小学生信息学奥林匹克竞赛小学组上机试题(共72分)姓名____________年级______学校_________准考号________成绩__________说明:(1)请同学们运行QBASIC语言环境(BC7.0版本)或C语言环境;(2)以各自题目的名称,如:shulie.bas或shulie.c或shulie.cpp,将源文件存盘;(3)将最后写好的源文件,存入D:\TEST文件夹中。

如:D:\TESTshulie.basfenshu.bassushu.bastuxing.bas……….……….一、数列计算(题目名称: shulie.bas/shulie.c/shulie.cpp)(12分)【题目描述】有一组序列的数是:1、2、9、33、126、477,……,请同学们认真观察数值的规律。

现要求:指定项数为任意的N项,计算:1)第N项的数据;2)输出前N项数据的和。

【输入文件】文件名:shulie.in文件中只有一行,包含1个整数N(其中3<=N<=15)为这个序列的项数。

【输出文件】文件名:shulie.out文件中共有二行:第一行为这个序列第N项的数据;第二行为这个序列前N项的数据和。

【要求】每一行的输出数据都从第一列开始。

【样例输入】 shulie.in的内容为:6【样例输出】shulie.out的内容为:477648又如:【样例输入】 shulie.in的内容为:10【样例输出】shulie.out的内容为:98577133893二、分数段统计(题目名称:fdtj.bas/fdtj.c/fdtj.cpp)(12分)【题目描述】小红所在的班级进行了数学考试,老师请小红同学帮忙进行名次排序和各分数段的人数统计工作。

现要求如下:将N名同学的考试成绩放在A数组中,各分数段的人数存到B数组中:成绩为100的人数存到B(1)中,成绩为90到99的人数存到B(2)中,成绩为80到89的人数存到B(3)中,成绩为70到79的人数存到B(4)中,成绩为60到69的人数存到B(5)中,成绩为60分以下的人数存到B(6)中。

2017年海淀区信息学竞赛小学组试卷

2017年海淀区信息学竞赛小学组试卷

2017年海淀区中小学生信息学奥林匹克竞赛小学组竞赛试题(每题100分,共700分)答题注意事项:(1)请使用QBASIC(BC7.0版本)或C/C++(DEVC++5.11版本)语言编程环境;(2)以各自题目要求的名称(如:isbn.bas/或isbn.c/或isbn.cpp)命名保存源文件;(3)输入输出均采用文件读写,将写好的源文件保存入D:\TEST文件夹中按要求提交。

如:D:\TESTisbn.cppnumber.cppid.cppstick.cpp………1、ISBN码(100分)(源文件名称:isbn.cpp/isbn.c/isbn.bas)【题目描述】每一本正式出版的图书都有一个ISBN码与之对应,ISBN码包括9位数字、1位识别码和3个分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-”就是分隔符(键盘上的减号),最后一位是识别码,例如0-670-82162-4就是一个标准的ISBN码。

ISBN码的首位数字表示书籍的出版语言,例如0代表英语;第一个分隔符“-”之后的三位数字代表出版社,例如670代表维京出版社;第二个分隔符后的五位数字代表该书在该出版社的编号;最后一位为识别码。

识别码的计算方法如下:首位数字乘以1,加上次位数字乘以2,……,以此类推,第九位数字乘以9,最后用所得的结果mod 11,所得的余数即为识别码,如果余数为10,则识别码为大写字母X。

例如ISBN号码0-670-82162-4中的识别码4是这样得到的:对067082162这9个数字,从左至右,分别乘以1,2,...,9,再求和,即0×1+6×2+……+2×9=158,然后取158 mod 11的结果4作为识别码。

你的任务是编写程序判断输入的ISBN码中识别码是否正确,如果正确,则仅输出“Right”;如果错误,则输出你认为是正确的ISBN码。

【输入文件】文件名为:isbn.in仅一行,一个字符串,表示一本书的ISBN码(输入保证符合ISBN码的格式要求)。

北京市信息学奥林匹克竞赛小学组试题

北京市信息学奥林匹克竞赛小学组试题

07年北京市信息学奥林匹克竞赛小学组试题建立文件夹请你在指定位置用自己的考号建立一个文件夹, 并在这个文件夹中为本次竞赛的每个题目建立一个子文件夹, 这些子文件夹的名字分别是:CHANGE、FAST、QUEU、E HOM、E ORCHAR。

D每建立一个正确的文件夹可以得到 2 分。

本部分共12 分(包括考号文件夹)提交答案时,请将每个题目的程序分别放入各自的文件夹中,放在其它位置不计分。

本次竞赛每个题目有10 个测试点,每个测试点2 分,每个题满分20 分。

本次竞赛满分112分单位换算CHANG。

E BAS【问题描述】目前最常用的长度单位有英制(例如英里、英寸)和公制(例如公里、米)两种。

你肯定对公制的单位更熟悉一些。

英制的长度单位其实也是经常会遇到的。

比如,你听大人们说:“ 这辆自行车是二八的。

”这句话的意思其实就是指那辆自行车的轮子的直径是28 英寸。

已知1 英寸==25。

4毫米,请你写出一个方便的小工具,可以将英寸数换算成厘米数。

【输入文件】文件名:CHANG。

E IN文件中只有一个整数,表示英寸数,已经这个数字不超过10000000。

【输出文件】文件名:CHANG。

E OUT文件中只有一个整数,表示相应的厘米数,由精确数四舍五入得来。

【样例输入】28【样例输出】71谁是跑得最快的兔子FAST。

BAS【问题描述】几只兔子正在讨论谁跑得最快的问题。

一个说:“我跑10 米只用了 4 秒钟!够快吧?”另一个说:“我跑17 米才用6 秒还是我快!”旁边的一个说话了:“上次,有只狼赶我,我跑100 米也只用了22 秒钟! 就是这样你一句我一句地争个不停,可是,谁也说服不了谁一只灰兔说:“你们都别争啦。

这样,把你们的名字和最好纪录都告诉我,我输入电脑,一下子就知道谁是最快的了。

”然后,她就写了一个可以完成这个功能的程序。

作为一个出色的小学生,你是不是也可以完成这个程序呢?不要输给灰免啊。

【输入文件】文件名:FAST.IN文件第一行是一个整数n(1<=n<=100), 表示参与讨论的兔子个数. 后面3n 行, 每3 行是一只兔子的信息, 分别是名字<字符串, 长度不超过10 个字符), 最好纪录的长度(整数, 以米做单位, 不超过1000), 最好纪录的时间(整数, 以秒做单位, 不超过1000).【输出文件】文件名:FAST.OUT. 数据保证可以选出最快的唯一文件中只有一个字符串, 就是跑得最快的那只兔子的名字一只兔子.【样例输入】3Nikki104Snoy176Pimi12022【样例输出】排队QUEUE.BAS婷婷是一个喜欢跳舞的女孩儿, 还报了一个专门学习跳舞的班呢.在入学的时候, 老师让大家根据自己的身高排了一下队, 个子小的同学排前面, 的同学, 先后顺序随意.如果给你这些同学的身高数据, 你能计算一下婷婷最前可以排第几、最后可以排第几么?【输入文件】文件名:QUEU。

2015年小学组信息学奥赛试卷(正式)

2015年小学组信息学奥赛试卷(正式)

2015年海淀区中小学生信息学奥林匹克竞赛小学组竞赛试题(每题100分,共700分)姓名________年级_________学校____________准考号________成绩_____说明:(1)请同学们运行QBASIC语言环境(BC7.0版本)或C/C++语言环境;(2)以各自题目要求的名称,例如:tongji.bas/或tongji.c/或tongji.cpp,将源文件存盘;(3)输入输出均采用文件读写,将最后写好的源文件,存入D:\TEST文件夹中。

如:D:\TESTtongji.bastuxing.basjisuan.baszfc.bas………一、成绩统计(题目名称:tongji.bas/ tongji.c/ tongji.cpp)(100分)【题目描述】六年级一班举办数学小竞赛。

考试结束后,班主任老师让张红同学用计算机编程的方法,来统计一下班里N名同学在这次数学竞赛中,成绩在以下各类别的人数。

要求:分数为整数,用变量F表示,以百分制作为记分标准。

成绩在(90≤F≤100)分数之间,用“you”来标识; 成绩在(80≤F≤89)分数之间,用“liang”来标识; 成绩在(60≤F≤79)分数之间,用“zhong”来标识;成绩在60分以下,则用“cha”来标识。

【输入文件】文件名:tongji.in文件中共有两行:第一行:包含一个整数N,表示学生的数量(其中1≤N≤30);第二行:是N个用1个空格隔开的学生的分数(分数为整数)。

【输出文件】文件名:tongji.out文件中共有四行:每行包括两项,第一项是标识符,第二项是统计该类别人数的数量,两项之间用1个空格隔开。

【要求】按高分到低分的顺序来统计,每一行输出数据都从第一列开始。

【样例输入】tongji.in的内容为:1092 78 80 95 100 87 64 56 52 98 (备注:数据之间有1个空格)【样例输出】tongji.out的内容为:You 4(备注:每行数据之间有1个空格)Liang 2Zhong 2Cha 2二、打印图形(题目名称: tuxing.bas/tuxing.c/tuxing.cpp) (100分)【题目描述】由键盘输入任意一个自然数N,输出如下图:形如“沙漏”的由大写字母组成的图形。

noi常用算法

noi常用算法

noi常用算法NOI(National Olympiad in Informatics)是指全国青少年信息学奥林匹克竞赛,是我国高中阶段最高水平的信息学竞赛。

在NOI 竞赛中,常用的算法是指在解决问题时经常使用的算法,下面将介绍一些常用的NOI算法。

一、深度优先搜索(DFS)深度优先搜索是一种用于遍历或搜索树或图的算法。

它从一个顶点开始,沿着路径直到无法继续,然后返回到前一个节点,继续搜索其他路径。

DFS通常使用递归或栈来实现。

它常用于解决迷宫问题、连通性问题等。

二、广度优先搜索(BFS)广度优先搜索是一种用于遍历或搜索树或图的算法。

它从一个顶点开始,先访问其所有相邻节点,然后访问这些相邻节点的相邻节点,以此类推。

BFS通常使用队列来实现。

它常用于解决最短路径问题、连通性问题等。

三、动态规划(Dynamic Programming)动态规划是一种解决多阶段决策问题的算法。

它将问题划分为若干个子问题,并分别求解这些子问题的最优解,然后利用子问题的最优解来推导出原问题的最优解。

动态规划常用于解决最优路径问题、背包问题等。

四、贪心算法(Greedy Algorithm)贪心算法是一种在每一步选择中都采取当前状态下最优的选择,从而希望最终能得到全局最优解的算法。

贪心算法不一定能得到最优解,但在某些问题上表现出良好的效果。

贪心算法常用于解决最小生成树问题、哈夫曼编码问题等。

五、最短路径算法最短路径算法用于求解两个节点之间的最短路径。

常用的最短路径算法有Dijkstra算法、Floyd-Warshall算法和Bellman-Ford算法等。

这些算法可以求解有向图或无向图中的最短路径问题,用于解决网络路由问题、导航问题等。

六、最大流算法最大流算法用于求解网络中从源节点到汇节点的最大流量。

常用的最大流算法有Ford-Fulkerson算法、Edmonds-Karp算法和Dinic算法等。

最大流算法可以用于解决网络优化问题、流量分配问题等。

信息学奥赛——深度优先搜索和广度优先搜索

信息学奥赛——深度优先搜索和广度优先搜索

全国青少年信息学奥林匹克联赛搜索基础算法一、深度搜索(DFS)从一个简单题目开始。

例1.输出n个元素的无重复的全排列。

(1<=n<=9)在这里我们可以对每一个元素编号,形成1,2,…,8,9个数字的全排列。

我们用一个一维数组来处理,相当于有9个位置,每个位置可以放1到9,再进行重复性判断,即在每个位置放一个数字时判断它前面是否已经使用该数字。

通过数组中元素值的变化,产生全排列。

下面给出非递归例程,其中,变量k是表示位置指针,数组x用来装每个位置的值。

const n=5;varx:array[1..10] of integer;k:integer; {位置指针}function try:boolean; {判重函数}var i:integer;beginfor i:=1 to k-1 doif x[i]=x[k] thenbegin try:=false;exit;end;try:=true;end;procedure out; {输出过程}var i:integer;beginfor i:=1 to n dowrite(x[i]);writeln;end;begink:=1;x[1]:=0;while k>0 dobegininc(x[k]); {当前第k个位置中增加1}if x[k]>n then {判断当前第k个位置中是否超界,超界指针后移一位} dec(k)elseif try then {判重}begininc(k);x[k]:=0; {前进1位}if k>n then {判断指针是否超界,决定一个排列是否完成,完成指针后移一位}begin out;dec(k);end;end;end;end.下面是递归例程:const n=5;varx:array[1..10] of integer;function try(v1,k:integer):boolean; {判重函数,v1表示位置,k表示所放的值}var i:integer;beginfor i:=1 to v1-1 doif x[i]=k thenbegin try:=false;exit;end;try:=true;end;procedure out; {输出过程}beginfor i:=1 to n dowrite(x[i]);writeln;end;procedure search(v:integer); {v表示第v个位置}var i:integer;beginif v>n then begin out;exit;end; {若v超界,一个排列完成}for i:=1 to n do {在第v个位置上分别放1到n}if try(v,i) then {如果不重复,处理第v+1个位置}begin x[v]:=i;search(v+1);end;end;beginsearch(1);end.说明:使用非递归的好处是节约内存,当一些题目对内存消耗较大时,建议使用非递归方式;但使用递归方式在程序运行时间上要好一些,因为在每个节点扩展时,递归方式少一个范围超界判断。

dfs_service_2013年海淀区中小学生信息学奥林匹克竞赛)——小学组试题

dfs_service_2013年海淀区中小学生信息学奥林匹克竞赛)——小学组试题

2013年海淀区中小学生信息学奥林匹克竞赛小学组竞赛试题(每题100分,共700分)姓名________年级______学校_________准考号________成绩__________说明:(1)请同学们运行QBASIC语言环境(BC7.0版本)或C语言环境;(2)以各自题目的名称,例如:shulie.bas/或shulie.c/或shulie.cpp,将源文件存盘;(3)建立文件读写,将最后写好的源文件,存入D:\TEST文件夹中。

如:D:\TESTfeiyong.basshulie.bastuxing.baspfang.bas……….……….一、乘车费用(题目名称:feiyong.bas/ feiyong.c/ feiyong.cpp) (100分) 【题目描述】星期天上午小红乘出租车去本市的奶奶家。

出租车计价方案为:3公里以内(包括3公里)起步价是13元,超过3公里之后按2.3元/公里计价,整个乘车途中另加1元钱的燃油费。

已知:小红到奶奶家的路程为N公里,请你计算一下小红到奶奶家的出租车费用是多少元?【输入文件】文件名:feiyong.in文件中只有一行,包含1个整数N(其中1<=N<=30)表示路程,单位:公里。

【输出文件】文件名:feiyong.out文件中只有一行,包含1个整数,表示乘车N公里后,出租车的费用(要求四舍五入保留整数),单位:元。

【要求】输出数据从第一列开始。

【样例输入1】 feiyong.in的内容为:2【样例输出1】 feiyong.out的内容为:14【样例输入2】 feiyong.in的内容为:15【样例输出2】 feiyong.out的内容为:42#include <cstdlib>#include <fstream>using namespace std;ifstream cin("feiyong.in");ofstream cout("feiyong.out");int main(int argc, char *argv[]){int n;double s;cin >> n;if (n <= 3){s = 13;}else{s = (n - 3) * 2.3 + 13;}s = s + 1;cout << int(s + 0.5) << endl;system("PAUSE");return EXIT_SUCCESS;}二、数列计算(题目名称: shulie.bas/shulie.c/shulie.cpp)(100分)【题目描述】有一个序列是:3,5,9,15,23,33,45…...,请同学们观察规律。

全国青少年信息学奥林匹克竞赛NOI信息学-递归与深度优先搜索DFS教学文案

全国青少年信息学奥林匹克竞赛NOI信息学-递归与深度优先搜索DFS教学文案
• 基于该特点,我们可以采用如下方式优化程序的运行时间 •定义数组int P[1000*1000][2],记录从指定方格出发,可到达的所有方格的行下标和列 下标。 •定义数组int R[1000][1000],保存从每个方格出发,可到达的方格数量。若从(x, y)出发 可达到的方格数为A,则求解过程中经过的所有方格,它们可到达的方格数都为A。
• 由于字符串需要额外的空间保存结束符'\0',且n <= 1000;因此迷宫的定义和迷宫信息 的读取代码如下:
2、洛谷P1141(01迷宫)--定义函数实现递推过程
10001 11010 01101 10001 01100
• 以当前方格为参照,寻找上、下、左、右可到达的方格 • 以上、下、左、右可到达的方格为参照,重复步骤1。直到没有可到达的方格为止
迷宫求解
1、迷宫求解--定义数据结构,读取迷宫信息
• 从题意和样例数据可以看出,迷宫中每个方格的行下标和列下标,都是从1开始编号的。 • 为了便于处理,我们也可以将数组预留一部分空间,数组行下标和列下标也从1开始编号
map[i][ j]取值为0,表示可以通过;取值为1,表示有障碍,不可通过 因为数组的行下标和列下标都从1开始,且1<=N、M<=5;所以行数和列数都应为6
经过的路径上原来棋格的颜色
4、洛谷P3956(棋盘)-搜索减枝,初步减少搜索时间
5、洛谷P3956(棋盘)-添加最小基本记忆数组,再次减少搜索时 间
谢谢观赏!
知识回顾 Knowledge Review
递归调用,无法结束。直至消耗完所有的栈内存,导致程序运行崩溃。
3、洛谷P1141(01迷宫)--防止程序死循环崩溃(解决办法)
我们可以按如下方式,防止重复 的递归调用。

2014年海淀区中小学信息奥赛获奖名单

2014年海淀区中小学信息奥赛获奖名单

2014年海淀区中小学生信息学奥林匹克竞赛获奖名单一、团体奖
小学组团体奖:
团体一等奖:花园村二小
团体二等奖:中关村一小
初中组团体奖:
团体一等奖:北京市第一零一中学
团体二等奖:中国人民大学附属中学
团体三等奖:首都师范大学附属中学
高中组团体奖:
团体一等奖:中国人民大学附属中学
团体二等奖:北京市第一零一中学
二、小学组一等奖(31人)
三、小学组二等奖(29人)
四、小学组三等奖(41人)
五、初中组一等奖(14人)
六、初中组二等奖(18人)
七、初中组三等奖(31人)
八、高中组一等奖(9人)
九、高中组二等奖(12人)
十、高中组三等奖(26人)。

海淀区 信息学 奥赛 编程环境

海淀区 信息学 奥赛 编程环境

海淀区信息学奥赛编程环境海淀区作为北京市的一个重要行政区域,在信息学奥赛领域也享有盛誉。

在这片热土上,许多优秀的学子通过参与信息学奥赛的竞赛与训练,展示了无穷的创造力和才华。

为了提供一个良好的编程环境,海淀区不仅提供了先进的硬件设施,还注重培养创新能力和团队合作精神。

在海淀区的信息学奥赛中,学生们可以利用各类编程语言和工具。

其中最常见的编程语言包括C++、Python、Java等。

这些语言拥有良好的编译器和编辑器,能够满足学生们进行高效编程的需求。

同时,还有许多编程工具和框架可供选择,如Eclipse、Visual Studio等,帮助学生们编写代码、调试程序和优化算法。

海淀区的信息学奥赛中,编程环境不仅仅是指硬件设施和软件工具,更关键的是对学生的引导和指导。

在这里,学生们可以接受来自资深教师和竞赛经验丰富的教练的指导,解决问题和优化算法的方法得到专业指导,拓宽思维的广度和深度。

学生们也可以参加各式各样的训练营和比赛,与来自不同学校、不同背景的同学们交流经验、共同进步。

在海淀区的信息学奥赛竞赛中,学生们能够获得非常丰富的奖项和荣誉。

成功参与信息学奥赛的学生不仅可以获得各类比赛的奖项,还有机会参加国内外的信息学奥赛选拔、夏令营和培训班。

这些都为学生们提供了更广阔的发展平台和机会,为未来的学术和职业道路打下坚实的基础。

在海淀区的信息学奥赛编程环境下,学生们不仅能够锻炼自己的编程技能,还能培养解决问题的能力、团队协作和沟通能力。

他们在编程的过程中,不仅学到了编程语言和算法的知识,更培养了逻辑思维、分析问题和解决问题的能力。

这些都为他们未来在学校和职场中的任何领域打下了坚实的基础。

总之,海淀区提供的信息学奥赛编程环境是生动、全面、有指导意义的。

学生们在这个环境下,不仅能够获得优秀的编程技能,还能够培养解决问题和团队合作的能力。

相信在这样的促进下,海淀区的信息学奥赛将会继续培养更多优秀的青年才俊,为信息技术的发展做出更大的贡献。

2006年海淀区信息学奥赛小学组(笔试+上机)试卷

2006年海淀区信息学奥赛小学组(笔试+上机)试卷

2006年海淀区信息学奥林匹克竞赛小学组笔试试题:(共40分)姓名_________年级______学校_________准考号_______成绩______ 一.选择题(10分,每小题2分)1、下面几个选项中是QB关系运算符的是()(A)≠(B)≥(C)≤(D)< >2、下面几个表达式中,值为假的是()(A)“4”<“R”(B)6+9<12 (C)“ABC”<“ABD”(D)6+2>=83、VAL(“123”)+VAL(“456”)的结果是:_(___________)(A)123456 (B)“123456”(C)“579”(D)579 4、下列赋值语句正确的是()(A) E$=ABC (B) B+C=D (C) 20=D (D) A=A+15、变量X、Y、Z的值分别为1,4、7,顺序执行完语句LET X=Y:Y=Z:Z=X后,变量X、Y、Z的值分别为()(A)1,4,7 (B)4,7,4 (C) 7,4,1 (D)7,7,4二、读程序写运行结果(每小题5分,共20分)1、K=1FOR I=1 TO 5K=K*INEXT IPRINT K/IEND运行结果为:2、M=4N=9T=N-MIF M*2>N THEN T=T+M*2 ELSE T=T-M/2 PRINT “T=”;T END运行结果为:3.FOR A=1 TO 5X=1FOR B=1 TO 3 FOR C=1 TO 4X=X+1NEXT CNEXT BNEXT APRINT X:END 运行结果为:4、CLSN=5FOR I=1 TO NPRINT TAB(N+1-I);FOR J=1 TO 2*I-1PRINT CHR$(64+I); NEXT JPRINT 运行结果为:NEXT IEND三.根据题意将程序补充完整(每空1分,共10分)1.下面程序是利用随机函数产生20个100---300之间(不包含100,包含300)的随机整数,打印其中是偶数,同时被3除余1的数。

第十九届2013全国青少年信息学奥林匹克联赛初赛试题C++及解析

第十九届2013全国青少年信息学奥林匹克联赛初赛试题C++及解析

第十九届全国青少年信息学奥林匹克联赛初赛提高组C++语言试题竞赛时间:2013年10月13日14:30~16:30选手注意:●试题纸共有12页,答题纸共有2页,满分100分。

请在答题纸上作答,写在试题纸上的一律无效。

●不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料。

一、单项选择题(共15题,每题1.5分,共计22.5分;每题有且仅有一个正确选项)1.一个32位整型变量占用()个字节。

A.4B.8C.32D.1282.二进制数11.01在十进制下是()。

A.3.25B.4.125C.6.25D.11.1253.下面的故事与()算法有着异曲同工之妙。

从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:?从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:‘从前有座山,山里有座庙,庙里有个老和尚给小和尚讲故事....’?A.枚举B.递归C.贪心D.分治4.1948年,()将热力学中的熵引入信息通信领域,标志着信息论研究的开端。

A.冯·诺伊曼(John von Neumann)B.图灵(Alan Turing)C.欧拉(Leonhard Euler)D.克劳德·香农(Claude Shannon)5.已知一棵二叉树有2013个节点,则其中至多有()个节点有2个子节点。

A.1006B.1007C.1023D.10246.在一个无向图中,如果任意两点之间都存在路径相连,则称其为连通图。

右图是一个有5个顶点、8条边的连通图。

若要使它不再是连通图,至少要删去其中的()条边。

A.2B.3C.4D.57.斐波那契数列的定义如下:F1=1,F2=1,Fn=Fn–1+Fn–2(n≥3)。

如果用下面的函数计算斐波那契数列的第n项,则其时间复杂度为()。

int F(int n){if(n<=2)return 1;elsereturn F(n-1)+F(n-2);}A.O(1)B.O(n)C.O(n2)D.O(F n)8.二叉查找树具有如下性质:每个节点的值都大于其左子树上所有节点的值、小于其右子树上所有节点的值。

2016年海淀区信息学竞赛小学组试卷-正式

2016年海淀区信息学竞赛小学组试卷-正式

2016年海淀区中小学生信息学奥林匹克竞赛小学组竞赛试题(每题100分,共700分) 姓名________年级_________学校____________准考号________成绩_____说明:(1)请同学们运行QBASIC语言环境(BC7.0版本)或C/C++语言环境;(2)按各自题目要求的名称命名,例如:jiaqian.bas/或jiaqian.c/或jiaqian.cpp (3)输入输出均采用文件读写,将最后写好的源文件,存入D:\TEST文件夹中。

(备注:仅仅提交源文件到指定的文件夹中,如果D盘没有TEST文件夹,请你新建一个文件夹,命名为TEST,并将你作答的各题的源文件存放在该文件夹中,切记切记!) 如:D:\TESTjiaqian.bas 或 jiaqian.c 或 jiaqian.cpptuxing.bas 或 tuxing.c 或 tuxing.cppshulie.bas 或 shulie.c 或 shulie.cppdanci.bas 或 danci.c 或 danci.cpp………一、价钱统计(题目名称:jiaqian.bas/ jiaqian.c/ jiaqian.cpp) (100分)【题目描述】夏天到了,超市里摆满了各种各样的应季水果。

现在知道:西瓜的价钱是每斤1.2元;桃子的价钱是每斤3.5元;葡萄的价钱是每斤4.5元;苹果的价钱是每斤5元。

现在分别给出上述四种所购买的斤数(均不超过20),请你编写程序帮助售货员阿姨计算并依次输出顾客购买四种水果需要的钱数及总钱数。

【输入格式】输入文件jiaqian.in中只有一行,包含四个符合题目要求的非负数,依次表示需要购买西瓜、桃子、葡萄和苹果的斤数。

两两之间用一个空格分隔。

【输出格式】输出文件jiaqian.out中共有五行,每行仅包含一个数,依次代表购买西瓜、桃子、葡萄、苹果所需的钱数,以及购买四种的总钱数。

所有数据均采取四舍五入保留一位小数。

年北京市信息学奥林匹克竞赛小学组试题

年北京市信息学奥林匹克竞赛小学组试题

07年北京市信息学奥林匹克竞赛小学组试题建立文件夹请你在指定位置用自己的考号建立一个文件夹,并在这个文件夹中为本次竞赛的每个题目建立一个子文件夹,这些子文件夹的名字分别是:CHANGE 、FAST、QUEUE、HOME、ORCHARD。

每建立一个正确的文件夹可以得到2分。

本部分共12分(包括考号文件夹)提交答案时,请将每个题目的程序分别放入各自的文件夹中,放在其它位置不计分。

本次竞赛每个题目有10个测试点,每个测试点2分,每个题满分20分。

本次竞赛满分112分单位换算CHANGE。

BAS【问题描述】目前最常用的长度单位有英制(例如英里、英寸)和公制(例如公里、米)两种。

你肯定对公制的单位更熟悉一些。

英制的长度单位其实也是经常会遇到的。

比如,你听大人们说:“这辆自行车是二八的。

”这句话的意思其实就是指那辆自行车的轮子的直径是28英寸。

已知1英寸==25。

4毫米,请你写出一个方便的小工具,可以将英寸数换算成厘米数。

【输入文件】文件名:CHANGE。

IN文件中只有一个整数,表示英寸数,已经这个数字不超过。

【输出文件】文件名:CHANGE。

OUT文件中只有一个整数,表示相应的厘米数,由精确数四舍五入得来。

【样例输入】28【样例输出】71谁是跑得最快的兔子FAST。

BAS【问题描述】几只兔子正在讨论谁跑得最快的问题。

一个说:“我跑10米只用了4秒钟!够快吧”另一个说:“我跑17米才用 6秒还是我快!”旁边的一个说话了:“上次,有只狼赶我,我跑100米也只用了22秒钟!就是这样你一句我一句地争个不停,可是,谁也说服不了谁一只灰兔说:“你们都别争啦。

这样,把你们的名字和最好纪录都告诉我,我输入电脑,一下子就知道谁是最快的了。

”然后,她就写了一个可以完成这个功能的程序。

作为一个出色的小学生,你是不是也可以完成这个程序呢不要输给灰免啊。

【输入文件】文件名:文件第一行是一个整数n(1<=n<=100),表示参与讨论的兔子个数.后面3n行,每3行是一只兔子的信息,分别是名字<字符串,长度不超过10个字符),最好纪录的长度(整数,以米做单位,不超过1000),最好纪录的时间(整数,以秒做单位,不超过1000).【输出文件】文件名:文件中只有一个字符串,就是跑得最快的那只兔子的名字.数据保证可以选出最快的唯一一只兔子.【样例输入】3Nikki104Snoy176Pimi12022【样例输出】Pimi排队【问题描述】婷婷是一个喜欢跳舞的女孩儿,还报了一个专门学习跳舞的班呢.在入学的时候,老师让大家根据自己的身高排了一下队,个子小的同学排前面,的同学,先后顺序随意.如果给你这些同学的身高数据,你能计算一下婷婷最前可以排第几、最后可以排第几么【输入文件】文件名:QUEUE。

2013年中小学生信息学奥林匹克竞赛获奖名单(2013-10-25)

2013年中小学生信息学奥林匹克竞赛获奖名单(2013-10-25)

2013年海淀区中小学生信息学奥林匹克竞赛获奖名单一、团体奖
小学组团体奖:
团体一等奖:花园村二小
团体二等奖:育鹰小学
初中组团体奖:
团体一等奖:北京市第一零一中学
团体二等奖:人大附中
团体三等奖:师大附中
高中组团体奖:
团体一等奖:人大附中
团体二等奖:北京市第一零一中学
二、优秀辅导员奖(41人)
三、小学组一等奖(44人)
四、小学组二等奖(42人)
五、小学组三等奖(48人)
六、初中组一等奖(16人)
七、初中组二等奖(23人)
八、初中组三等奖(46人)
八、高中组一等奖(11人)
九、高中组二等奖(13人)
十、高中组三等奖(15人)。

海淀区中小学生信息学奥林匹克竞赛

海淀区中小学生信息学奥林匹克竞赛

密码翻译 题目 称 mima.bas/mima.c/mima.cpp
100 分
题目 述 话说猴王的徒弟小猴在他的辅导 修炼成仙,然而小猴 在继续 力修炼
中, 在的水 超过猴王 似乎 符合常理…… 但小猴绝 是白眼狼,
会凭着自 高强的法力 猴王斗争,反而满怀报恩的思想,他一直等待着
机会的降临……
终于一天,一位强大的妖魔趁小猴外出的时候, 走了猴王 一是因为他
盘 3 建立文 读写,将最 写好的源文 , 入 价:\TEST 文 中
如 价:\TEST fei本ong.bas shulie.bas tu末ing.bas pfang.bas ………. ……….
一 乘车费用 题目 称:fei本ong.bas/ fei本ong.c/ fei本ong.cpp
(令代代 分)
将 些大写 母对应密码 典中的数 求和,将求和的结果作为密码 妖魔
套密码转换 算复杂吧?请你编写一个程序帮 小猴将他得到的 母串转换
输入文
成能够打开妖洞的密码吧!
文 mima.in 第一行 只有一个 整数 N,表示密码 符串中可能出 的 个数,其中 1<=N<=26 ;
大写 母的
之 的 以*N 行 表示密码 典 两行 表一个大写 母的信息 其中第
则如 根据 班 4 学踢毽子的个数总和的多少决出各班的排 ,获得
总和最高的为冠军队 请你计算
令 班 4 学踢毽子的个数总和
以 找出冠军队所在的班级
3 所有参赛 学 均踢毽子的个数
4 统计参赛 学中踢毽子的个数 小于 均踢毽子的个数的人数
输入文 文
jianzi.in
文 中共有 以*N+令 行
第一行 为班级的个数 N(其中 以<=N<=令代)
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2013年海淀区中小学生信息学奥林匹克竞赛小学组竞赛试题(每题100分,共700分)姓名________年级______学校_________准考号________成绩__________说明:(1)请同学们运行QBASIC语言环境(BC7.0版本)或C语言环境;(2)以各自题目的名称,例如:shulie.bas/或shulie.c/或shulie.cpp,将源文件存盘;(3)建立文件读写,将最后写好的源文件,存入D:\TEST文件夹中。

如:D:\TESTfeiyong.basshulie.bastuxing.baspfang.bas……….……….一、乘车费用(题目名称:feiyong.bas/ feiyong.c/ feiyong.cpp) (100分) 【题目描述】星期天上午小红乘出租车去本市的奶奶家。

出租车计价方案为:3公里以内(包括3公里)起步价是13元,超过3公里之后按2.3元/公里计价,整个乘车途中另加1元钱的燃油费。

已知:小红到奶奶家的路程为N公里,请你计算一下小红到奶奶家的出租车费用是多少元?【输入文件】文件名:feiyong.in文件中只有一行,包含1个整数N(其中1<=N<=30)表示路程,单位:公里。

【输出文件】文件名:feiyong.out文件中只有一行,包含1个整数,表示乘车N公里后,出租车的费用(要求四舍五入保留整数),单位:元。

【要求】输出数据从第一列开始。

【样例输入1】 feiyong.in的内容为:2【样例输出1】 feiyong.out的内容为:14【样例输入2】 feiyong.in的内容为:15【样例输出2】 feiyong.out的内容为:42#include <cstdlib>#include <fstream>using namespace std;ifstream cin("feiyong.in");ofstream cout("feiyong.out");int main(int argc, char *argv[]){int n;double s;cin >> n;if (n <= 3){s = 13;}else{s = (n - 3) * 2.3 + 13;}s = s + 1;cout << int(s + 0.5) << endl;system("PAUSE");return EXIT_SUCCESS;}二、数列计算(题目名称: shulie.bas/shulie.c/shulie.cpp)(100分)【题目描述】有一个序列是:3,5,9,15,23,33,45…...,请同学们观察规律。

现要求:指定项数为任意的N项,计算并输出前N项;同时计算并输出前N项的和。

【输入文件】文件名:shulie.in文件中只有一行,包含1个整数N(其中3≤N≤20)为这个序列的项数。

【输出文件】文件名:shulie.out文件中共有N+1行:前N行:每行一个整数为这个序列的前N项;最后一行:只有一个整数为这个序列前N项的和。

【要求】每一行的输出数据都从第一列开始输出。

【样例输入】 shulie.in的内容为:8【样例输出】 shulie.out的内容为:3591523334559192#include <cstdlib>#include <fstream>using namespace std;ifstream cin("shulie.in");ofstream cout("shulie.out");int main(int argc, char *argv[]){int n, i;int a[100], s;a[1] = 3;s = 3;cin >> n;cout << 3 << endl;for (i = 2; i <= n; i++){a[i] = a[i - 1] + (i - 1) * 2;cout << a[i] << endl;s += a[i];}cout << s << endl;//system("PAUSE");return EXIT_SUCCESS;}三、打印图形(题目名称: tuxing.bas/tuxing.c/tuxing.cpp) (100分)【题目描述】由键盘输入任意一个自然数N,输出如下图规律的图形。

【输入文件】文件名:tuxing.in文件中只有一个整数N,为图形上半部分的行数(其中2<=N<=26)【输出文件】文件名:tuxing.out文件中为输出的图形。

【要求】图形的最左侧从第一列开始输出。

【样例输入】 tuxing.in中有:4【样例输出】 tuxing.out中有下图所示的图形。

D DCD DCBCD DCBABCDDCBABCD DCBCD DCD D#include <cstdlib>#include <fstream>using namespace std;ifstream cin("tuxing.in");ofstream cout("tuxing.out");int main(int argc, char *argv[]){int n;int i, j;char c;cin >> n;for (i = 1; i <= n; i++){for (j = n - i + 1; j <= n; j++) {c = j + 'A' - 1;cout << c;}for (j = 1; j <= (n - i) * 2; j++) {cout << " ";}for (j = n; j >= n - i + 1; j--) {c = j + 'A' - 1;cout << c;}cout << endl;}for (i = n - 1; i >= 1; i--){for (j = n - i + 1; j <= n; j++) {c = j + 'A' - 1;cout << c;}for (j = 1; j <= (n - i) * 2; j++) {cout << " ";}for (j = n; j >= n - i + 1; j--) {c = j + 'A' - 1;cout << c;}cout << endl;}//system("PAUSE");return EXIT_SUCCESS;}四、完全平方数(题目名称:pfang.bas/ pfang.c/ pfang.cpp) (100分)【题目描述】在四位自然数中有这样一些特点的数:(1)它们是素数;(2)将这些素数加上45后得到一个新的数值;(3)请同学们在这些新的数值中挑选出:是完全平方数同时末尾数字是4的这样特点的数。

例如素数:1399,加上45后,得到新数1444。

而1444满足:它是完全平方数,同时末尾数字为4。

现给出任意自然数M ~N的区间,请同学们计算并输出所有满足上述条件的数值,并统计个数。

【输入文件】文件名:pfang.in文件中只有一行,包含两个用空格隔开的任意自然数M和N,(其中1000≤M<N≤9999)。

【输出文件】文件名:pfang.out文件中共有若干行:前若干行:每行一个数,为满足上述条件的数值;最后一行:只有一个数,为满足上述条件的数值的个数。

【要求】每一行的数据都从第一列开始输出。

【输入样例】 pfang.in的内容为:1000 4000(两个数据之间空一格)【输出样例】 pfang.out的内容为:1444270433643#include <cstdlib>#include <fstream>using namespace std;ifstream cin("pfang.in");ofstream cout("pfang.out");int main(int argc, char *argv[]){int a, b;int t, i, x;int s, j, z;z = 0;cin >> a >> b;for (i = 30; i <= 100; i++){t = i * i;if (t >= a && t <= b && t % 10 == 4){x = t - 45;s = 0;for (j = 1; j <= x; j++)if (x % j == 0)s++;if (s == 2){z++;cout << t << endl;}}}cout << z << endl;//system("PAUSE");return EXIT_SUCCESS;}五、踢毽子(题目名称:jianzi.bas/ jianzi.c/ jianzi.cpp)(100分)【题目描述】某小学五年级组的学生举办踢毽子比赛,每班选出4名同学参加。

比赛的规则如下:根据每班4名同学踢毽子的个数总和的多少决出各班的排名,获得总和最高的为冠军队。

现请你计算:(1)每班4名同学踢毽子的个数总和;(2)找出冠军队所在的班级;(3)所有参赛同学平均踢毽子的个数;(4)统计参赛同学中踢毽子的个数不小于平均踢毽子的个数的人数。

【输入文件】文件名:jianzi.in文件中共有2*N+1行:第一行:为班级的个数N(其中2<=N<=10);之后的2*N行:每两行为一个班级的信息(包括:班级的名称及4名同学踢毽子的个数。

【输出文件】文件名:jianzi.out文件中共有N+3行:前N行:每行一个数值为各个班级4名同学踢毽子的个数总和;第N+1行:只有一个名称为冠军队所在的班级;第N+2行:只有一个数值为所有参赛同学平均踢毽子的个数,(要求:四舍五入保留整数);第N+3行:只有一个数值为统计踢毽子的个数不小于平均踢毽子的个数的人数。

相关文档
最新文档