一个算法应该具有以下五个重要的特征:
- 有穷性: 一个算法必须保证执行有限步之后结束;
- 确切性: 算法的每一步骤必须有确切的定义;
- 输入:一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定除了初始条件;
- 输出:一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的;
- 可行性: 算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。
| Did you know | |
Algorithm 一词的由来 |
Algorithm(算法)一词本身就十分有趣。初看起来,这个词好像是某人打算要写“Logarithm”(对数)一词但却把头四个字母写的前后颠倒了。这个词一直到1957年之前在Webster's New World Dictionary(《韦氏新世界词典》)中还未出现,我们只能找到带有它的古代涵义的较老形式的“Algorism”(算术),指的是用阿拉伯数字进行算术运算的过程。在中世纪时,珠算家用算盘进行计算,而算术家用算术进行计算。中世纪之后,对这个词的起源已经拿不准了,早期的语言学家试图推断它的来历,认为它是从把algiros(费力的)+arithmos(数字)组合起来派生而成的,但另一些人则不同意这种说法,认为这个词是从“喀斯迪尔国王Algor”派生而来的。最后,数学史学家发现了algorism(算术)一词的真实起源:它来源于著名的Persian Textbook(《波斯教科书》)的作者的名字Abu Ja'far Mohammed ibn Mûsâ al-Khowârizm (约公元前825年)——从字面上看,这个名字的意思是“Ja'far 的父亲,Mohammed 和 Mûsâ 的儿子,Khowârizm 的本地人”。Khowârizm 是前苏联XИBA(基发) 的小城镇 。Al-Khowârizm 写了著名的书Kitab al jabr w'al-muqabala (《复原和化简的规则》);另一个词,“algebra”(代数),是从他的书的标题引出来的,尽管这本书实际上根本不是讲代数的。
逐渐地,“algorism”的形式和意义就变得面目全非了。如牛津英语字典所说明的,这个词是由于同arithmetic(算术)相混淆而形成的错拼词。由algorism又变成algorithm。一本早期的德文数学词典 Vollstandiges Mathematisches Lexicon (《数学大全辞典》) ,给出了Algorithmus (算法)一词的如下定义:“在这个名称之下,组合了四种类型的算术计算的概念,即加法、乘法、减法、除法”。拉顶短语algorithmus infinitesimalis (无限小方法) ,在当时就用来表示Leibnitz(莱布尼兹)所发明的以无限小量进行计算的微积分方法。
1950年左右,algorithm一词经常地同欧几里德算法(Euclid's algorithm)联系在一起。这个算法就是在欧几里德的《几何原本》(Euclid's Elements ,第VII卷,命题i和ii)中所阐述的求两个数的最大公约数的过程(即辗转相除法)。
参加信息学奥赛的同学们如果想要找题目来做,推荐大家到各大高校的ACM Online Judge 中寻宝...
因为题目是按照ACM标准来出的,所以有些题目是英文的,但是也有中文题(如vijos和FJNU中文题比较多)..如果英文不好的话可以选中文题多的OJ来做...
中国:
浙江大学(ZJU):http://acm.zju.edu.cn/
北京大学(PKU):http://acm.pku.edu.cn/JudgeOnline/ (推荐)
杭州电子科技大学(HDU):http://acm.hziee.edu.cn/
(C & C++ only)中国科技大学(USTC):http://acm.ustc.edu.cn/
湖南大学(HNU):http://acm.hnu.cn:8080/online/
天津大学(TJU):http://cs.tju.edu.cn/acm/
四川大学(SCU):http://acm.scu.edu.cn/
汕头大学(STU):http://acm.stu.edu.cn/
福州大学(FZU):http://acm.fzu.edu.cn/
厦门大学(XMU):http://acm.xmu.edu.cn/JudgeOnline/
福建师范大学(FJNU):http://acm.fjnu.edu.cn/ (推荐)
华中科技大学(HUST):http://acm.hust.edu.cn/JudgeOnline/
华东师范大学(ECNU):http://acm.cs.ecnu.edu.cn/
浙江工业大学(ZJUT):http://acm.zjut.edu.cn/
浙江师范大学(ZJNU):http://acm.zjnu.cn/
高效信息学在线判题系统(VIJOS):http://www.vijos.cn/ (专门为信息学奥赛而设, 推荐)
俄罗斯:
乌拉尔大学(URAL):http://acm.timus.ru/
萨拉托夫大学(SGU):http://acm.sgu.ru/
EL Judge(MIPT): http://acm.mipt.ru/judge/problems.pl (热烈推荐)
西班牙:
瓦拉杜利德大学(UVA):http://acm.uva.es/
美国:
USACO: http://train.usaco.org/usacogate
波兰:
SPOJ:http://www.spoj.pl/
吉尔吉斯斯坦:
KRSU: http://www.olymp.krsu.edu.kg/GeneralProblemset.aspx
第十二届全国青少年信息学奥林匹克联赛初赛试题
( 提高组 Pascal 语言 二小时完成 )
●● 全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效 ●●
一、 单项选择题 (共 10 题,每题 1.5 分,共计 15 分。每题有且仅有一个正确答案.)。
1. 在以下各项中。( )不是 CPU 的组成部分。
A. 控制器 B. 运算器 C. 寄存器 D. ALU E. RAM
2. BIOS(基本输入输出系统)是一组固化在计算机内( )上一个 ROM 芯片上的程序。
A. 控制器 B. CPU C. 主板 D. 内存条 E. 硬盘
3.在下面各世界顶级的奖项中,为计算机科学与技术领域作出杰出贡献的科学家设立的奖项是( )。
A. 沃尔夫奖 B. 诺贝尔奖 C. 菲尔兹奖
D. 图灵奖 E. 南丁格尔奖
4.在编程时(使用任一种高级语言,不一定是 Pascal),如果需要从磁盘文件中输入一个很大的二维 数组(例如 1000*1000 的 double 型数组),按行读(即外层循环是关于行的)与按列读(即外层循 环是关于列的)相比,在输入效率上( )。
A. 没有区别 B. 有一些区别,但机器处理速度很快,可忽略不计
C. 按行读的方式要高一些 D. 按列读的方式要高一些 E. 取决于数组的存储方式。
5.在 Pascal 语言中,表达式 (21 xor 2)的值是( )
A. 441 B. 42 C.23 D.24 E.25
6.在 Pascal 语言中,判断 a 不等于 0 且 b 不等于 0 的正确的条件表达式是( )
A. not a=0 or not b=0 B. not((a=0)and(b=0)) C. not(a=0 and b=0) D. (a<>0)or(b<>0) E. (a<>0)and (b<>0)
7.某个车站呈狭长形,宽度只能容下一台车,并且只有一个出入口。已知某时刻该车站状态为空,从 这一时刻开始的出入记录为:“进,出,进,进,进,出,出,进,进,进,出,出”。假设车辆入站的 顺序为 1,2,3,……,则车辆出站的顺序为( )。
A. 1, 2, 3, 4, 5 B. 1, 2, 4, 5, 7 C. 1, 4, 3, 7, 6
D. 1, 4, 3, 7, 2 E. 1, 4, 3, 7, 5
8.高度为 n 的均衡的二叉树是指:如果去掉叶结点及相应的树枝,它应该是高度为 n-1 的满二叉树。在这里,树高等于叶结点的最大深度,根结点的深度为 0,如果某个均衡的二叉树共有 2381 个结点, 则该树的树高为( )。
A. 10 B. 11 C. 12 D. 13 E. 210 – 1
9. 与十进制数 1770.625 对应的八进制数是( )。由OIFans.cn收集
A. 3352.5 B. 3350.5 C. 3352.1161
D. 3350.1151 E. 前 4 个答案都不对
10.将 5 个数的序列排序,不论原先的顺序如何,最少都可以通过( )次比较,完成从小到大的排序。
A. 6 B. 7 C. 8 D. 9 E. 10
二、 不定项选择题 (共 10 题,每题 1.5 分,共计 15 分。每题正确答案的个数大于或等于 1。多选 或少选均不得分)。
11. 设A=B=D=true,C=E=false,以下逻辑运算表达式值为真的有( )。
A. ( A∧B)∨(C∧D)∨ E B.
(((A∧B)∨C)∧D∧E)
C. A∧(B∨C∨D∨E) D. (A∧(B∨C)) ∧D∧E
12. (2010)16 + (32)8的结果是( )。
A. (8234)10 B. (202A)16
C. (100000000110)2 D. (2042)16
13. 设栈S的初始状态为空,元素a, b, c, d, e 依次入栈,以下出栈序列不可能出现的有( )。
A. a, b, c, e, d B. b, c, a, e, d
C. a, e, c, b, d D. d, c, e, b, a
14. 已知 6 个结点的二叉树的先根遍历是 1 2 3 4 5 6(数字为结点的编号,以下同),后根遍历是
3 2 5 6 4 1,则该二叉树的可能的中根遍历是( )由OIFans.cn收集
A. 3 2 1 4 6 5 B. 3 2 1 5 4 6
C. 2 3 1 5 4 6 D. 2 3 1 4 6 5
15. 在下列各数据库系统软件中,以关系型数据库为主体结构的是( )。
A. ACCESS B. SQL Server
C. Oracle D. Foxpro
16.在下列各软件中,属于 NOIP 竞赛(复赛)推荐使用的语言环境有( )。
A. gcc/g++ B. Turbo Pascal
C. Turbo C D. free pascal
17. 以下断电之后将不能保存数据的有( )。
A. 硬盘 B. ROM C. 显存 D. RAM
18. 在下列关于计算机语言的说法中,正确的有( )。
A. Pascal和C都是编译执行的高级语言
B. 高级语言程序比汇编语言程序更容易从一种计算机移植到另一种计算机上
C. C++是历史上的第一