查看原文
其他

凭什么我得了信息学奥赛国家一等奖(山东)

2017-07-10 信息学竞赛

凭什么我得了信息学奥赛国家一等奖

 

山东省莱州一中  姚 远    

 

2005年5月中旬,在犹豫了几个月后,我终于决定退出信息学奥赛。随后我交还了手中所有的图书资料,搬出了601宿舍,停下了所有的辅导课……脑袋空下来之后,过去的事开始不断闯进我的脑海——那不明白的许多事情,还有悬而未决的问题——我真想解决它们啊。至少我也要弄明白有些事为什么会发生,为什么会变成那样,而我错在什么地方。加之我的时间也不像过去那样紧张了,于是我开始慢慢整理过去。这期间,我明白了许多。
    2005年11月,我还是参加了第十一届全国信息学奥林匹克联赛。不过参加这次比赛的目的并不是为了争取更好的成绩,我是想重温一下过去。在从日照回莱州的车上我开始写这篇文章《凭什么我们信息学奥赛先出国家一等奖》。之所以要写这么一篇文章原因有很多,主要三方面:一是基于对过去的反思和体会;二是参加了一段时间的另一科奥赛辅导使我横向比较认识到一些问题;三是看到莱州一中我和王福龙之后的几位oier(信息学奥赛参加者)的发展,纵向比较也让我深有感触。基于上面三个原因,我决定写这篇文章。

一. 三个基本数据

搞信息学奥赛要整日和数据打交道。我们喜欢“真实”,不喜欢“虚假”。我们只重视事实和真实的数据。因此在考虑该用什么方式呈现这篇文章时,我决定不讲空话。要让人信服,我只摆一些“数据”和“事实”。

凭什么我们信息学奥赛先出国家一等奖,从以下几方面的数据可以找到答案。
1. 时间
    “时间”时衡量做功多少的一个常用的量化指标。就像天津市一位老师分析的那样:“要想取得国家一等奖至少要调够200小时的代码。”要想拿国家一等奖,首先必须投入大量的时间。我们的投入有多少呢?我们几乎挤出了所有可有占用的时间,多的时候每周活动30节。班会2节,体育2节,信息技术2节,活动2节,自理课2节,音美课1节,星期六晚自习4节,以及部分自习课,在比赛前夕,可能还会有更多的自习课被吃掉。而在校外,如寒暑假,我每天的学习时间平均超过12小时。这些时间加起来有多少?高一下学期,为有更充分的时间学习奥赛,我们将宿舍搬到了六楼值班室。这里我们可以不受学校作息时间的限制,我们可以在每晚10点熄灯铃后继续开灯学习。每晚我们会学多少时间呢?我不敢讲。但值班的老师和巡夜的警卫一定知道。
    就是这样的时间投入使我们有可能触及国家一等奖。
2. 
    开始学信息学奥赛时资料稀缺。那时想要找一本PAScAL语言的书都很难。我看的第一本信息学奥赛的参考书时一本80年代的老书,纸都发黄了。即便是这样我仍感到非常难得,至今我还保留着那本书的笔记。上高中后为找书我们想尽了办法:邮购,托人捎,出去比赛时我们总要先搜一下当地的书店。所以一年下来我们还真积累了一笔不小的“富”。高一下学期我从601向办公室搬书,最下面的书在腰处,最上面的书到了下巴,这就是我们一年来读过的参考书,就这么多。
    今年我曾让周恩朋整理了机房中现存的书。(见表1)这些本书共有19本,价值364.75元,按书后的印刷信息统计至少有676万字。而我们一个学期的所有教科书加起来也不过200万字吧。而且大家能感觉到读懂编程书上的10个字和读懂教科书上的10个字是不一样的。
(表1)
书名字数/千字定价
1奥林匹克数学中的组合问题42823
2高等数学3573.25
3组合数学39219.8
4数据结构题集1683.9
5离散数学导论2209.2
6图论及其应用33412.8
7算法艺术与信息学竞赛64145
8信息学奥林匹克竞赛指导——组合数学的算法与程序设计29819
9信息学奥林匹克竞赛指导——图论的算法与程序设计25816
10高中计算机竞赛解题指导31114
11新编奥林匹克信息学竞赛指导:数据结构与算法设计41218
12信息学奥林匹克教程·语言篇36624
13信息学奥林匹克教程·基础篇36624
14信息学奥林匹克教程·提高篇43724
15全国青少年信息学奥林匹克联赛培训教程(一)  
16全国青少年信息学奥林匹克联赛培训教程(二)36423.8
17全国青少年信息学奥林匹克联赛培训教材(中学)44528
18金牌奥赛兵法·信息学(计算机)31017
19程序设计:高级程序员级65340

以下书是后面买的,我没有看,也没有将这些书加入统计之中
数据结构:c语言版50922
计算几何——算法分析与设计44429
PASCAL语言程序设计54016.4
PASCAL程序设计3754.15
全国信息学奥林匹克联赛试题精解24218.6
高级语言程序设计38418
程序设计基础 数据结构算法及应用35015
全国青少年信息学(计算机)奥林匹克分区联赛试题解析(中学)47128
信息学(计算机)奥林匹克(高级本)47824

上面的统计只是一个很保守的统计。那些现在在其他oier手中的书我无法统计到。至于计算机和网上的我们看过的论文、讲稿、解题报告、试题讨论和电子书我就更无法统计它们到底有多少了,只是从文件夹属性上我看到它们有500M。这些书籍资料加起来就是我们取得国家一等奖的知识基础。就是这些。

3. 
    解一道信息学奥赛题和解一道物理或数学题是不可同年而语的。你若是知道3个小时的比赛时间只要求解决4道题,你就可以想象解决一道信息学奥赛题需要耗费多少时间和精力。从参加奥赛到现在我一共做了多少题,这无法计数。不过我觉得单数一下那几个比较大的题库中的题就不少了。我们做过几个比较经典的题库,如“济南培训52题”、“历届联赛复赛试题”、Poi(Poland Olympiad in Informatics)、TJU、USACO等。TJU是一个在线评测系统,是王福龙主攻的题库。这个题库共有200多道题,王福龙解决几乎所有问题。(因为TJU网站因故已停了近4个月,所以我查不到具体的数字,这是询问王福龙的结果。)参照3小时解决4道题,你可以计算一下单做这个题库要用多少时间。USACO是我后半段时间主攻的题库,这是美国计算机协会(USA computer organization)专门为青少年信息学奥赛辅导而设立的题库,不用说,这肯定是全英文的题库。读懂英文题,解决,提交,评测,你可以想象要花费多少时间。
    还有学许许多多书上的,模拟赛上的,讲稿上的题目,我无法统计有多少。不过我们可以从另一个角度评估一下我们做题的多少:离开新校前我拷贝了我机器上所有的程序代码,然后用计算机自动统计了我写的代码行数。得到的结果让我自己也吃了一惊,我在106号微机上共写了27257行代码。而我曾看过的代码(包括别人写的)共有46239行。我想考过二级或学过写程序的人都会明白这两个数字的意味。写了这么多代码,我觉得我应该拿国家一等奖。
    列了这么多数据,我觉得这只是“表面”而已,只是能看到的东西。这些只是我们为取得国家一等奖而付出的努力,而为什么我们能付出这种努力——为什么我们能挤出时间,为什么我们能看那么多书,为什么我们能做那么多题——内心深处的主观原因才是我们能拿国家一等奖的根本原因。那么这些内在的东西都有什么呢?我觉得至少有三大点:一、自觉和强大的自制力。二、激情和强烈的动机。三、能稍微吃点苦。

二.三个基本要素

1. 自觉和强大的自制力。

客观讲,自觉和自制并不是拿国家一等奖最重要的保证。但之所以将其放在第一位是因为这是最难做到的一点——特别是对于信息学奥赛的选手。
    我觉得自觉应该包括两个方面:自觉做该做的事,自觉不做不该做的事。由于奥赛基本上是和日常课内学习脱节的,并不像课内学习那样有老师、考试等一系列监督评价机制,因此学习奥赛有很大的自由度,有许多自主学习的时间,学与不学全凭自觉。对于信息学奥赛这种自由就更大了。实际上在信息学奥赛这边,一直是我们自己定学习计划,定内容和进度。杨老师的巨大作用体现在帮助我们搜集资料、解决问题、协调关系三个方面。杨老师一直很信任我们,她很少抽查我们是否在学,学了什么或学的怎么样。所以在这种监督很少的自由环境下如果你不够自觉,你是很容易效率低下,走神,甚至偷偷干不该干的事。
    那时我常去微机室,不少同学都问我在那里干什么。我说我在那里调程序。他们又问我你是否可以随时用电脑,可以上网?我说可以。这时他们总会偷笑着说“你们太幸福了……”我知道这句话是有言外之意的。在他们看来我们幸福是因为我们有条件做许多他们要想尽办法才能做的事,比如玩游戏,上QQ,看电影,看球……对我而言这真是太容易了,只要轻点两下鼠标一切都可以实现。可是我可以毫无愧色的说,我从来未在机房里做过那些事:我没有玩过一次游戏,一次也没有,哪怕是“扫雷”那种小游戏;虽然我经常上QQ,但我只是利用QQ和老师和全国各地oier讨论问题,我从未用QQ交过什么网友等等;我上网搜集的信息都是和奥赛或学习有关的,我没有看过什么娱乐新闻,也没看过一次比赛;我没有看过一次大片消遣,我唯一放松的方式就是听歌,那也是在很累的时候,实际上我的主机箱上基本不插耳机……因为杨老师有自己的教学任务很少有时间监督我们,所以做到上面几点只能靠自觉。想想那些在微机课上费尽心机想脱离老师监控偷偷上网的学生,你就能明白抵挡住网络的诱惑力需要多少自制力——特别是在没有监督的情况下。
    现在你或许能明白,我开始列的那些数据并不是虚构的“奇迹”,他们是靠自觉和自制从1 1开始积累起来的。垒到一定高度,自然会够到国家一等奖。

2. 激情和强烈的动机。
    许多人把我参加信息学奥赛的原因归结为一种兴趣、爱好。可我说这“苦差使”可真没什么兴趣或爱好可言,尤其在一中这种氛围下,尤其在一片反对声中。五年比赛,第3年才冲出莱州市,第4年才拿到国家一等奖,中间那么多失败和挫折,没有点激情没有强烈的动机,真的很难坚持这么久。我想这也是我们和其他科奥赛选手差别的地方。我们并不像他们只把奥赛当成一种老师安排的课外学习,我们真的把奥赛当成了生活的一部分,全身心的投入,梦想一个美好的结局。或许我和王福龙的一个差别也在这:我的动机比他强烈,目标更明确——就是要拿国家一等奖,不惜一切代价要拿到。我觉得正是这种激情地投入使我能释放全部的潜能,把力量拼到极限,投入那么多时间,看那么多书,做那么多题。当然我和王福龙在目标和动机上的差异并不是凭空产生的,这是由我们所处的环境不同造成的。一方面,我强烈的动机来自压力,因为那时我遇到的反对和阻力比王福龙多很多,因此我的压力很大。我告诉自己我必须在今年(2004)拿到国家一等奖,这样我就能早点退出奥赛,结束和父亲的对峙。是这种压力转化为动力拼出了全力。另一方面,我比王福龙更现实一些,或者说更功利一些:拿国家一等奖的目的就是为了保送或加分,否则我不会牺牲宝贵的学习时间发展“兴趣”。我常说国家二等奖的第一名和省三等奖的最后一名并没有差别,因为他们一样没有保送和加分资格,而只有国家一等奖可以保送或加分。因此我没的选择,我只能拿国家一等奖。现在看来我的思路对的,没有这样明确的目标和强烈的动机,我拿不到国家一等奖,至少不会在高一就拿到。

3. 能稍微吃点苦。

搞奥赛的那段时间里,我常拿出一篇文章来读。这篇文章就是我期末考试期间贴在墙上的那篇文章《人必须要有点精神》。文章讲的是中科院计算机所“龙芯”课题组的故事,讲中国第一块高性能CPU诞生的经过。文中有许多打动我的话,给我很大的激励。 42 36383 42 15535 0 0 1942 0 0:00:18 0:00:07 0:00:11 3415像下面这段:
    有好几次,他在早上六、七点钟打开实验室的门,发现有些人手里扶着鼠标就靠在椅子上睡着了。这样的场景常常使他忍不住想落泪。但胡伟武还是叫醒伙伴们,询昨天晚上的进展,并鼓舞大家接着干——他开玩笑说,有时候觉得自己比“周扒皮”还狠。胡伟武有一个叫张福新的学生,在龙芯验证芯片出生前的两个月中,很少在凌晨4点前睡觉。有一次,他们在深夜等计算机的运行结果,聊天时说到了生死。张福新说最不希望老死,看着自己的生命一点点被耗尽。
    还有胡伟武的一段话:
    胡伟武动情地说,我们有一种观点,我们现在落后这么多,别人不比我们笨,如果大家都一样一周五天,一天8小时上班,恐怕很难赶上人家,惟有像当年搞“两弹一星”一样拼命,至少得累死一批人,中华民族才可能不受压制,才有可能实现民族的伟大复兴。
    我感觉我还是从这篇文章中“稍微”学了点吃苦精神。之所以说我是“稍微”吃苦是因为我真不敢把我吃的这点苦和他们吃的苦相提并论。但我却不是一点都未付出,就像前面说的,高一一学年我几乎停掉了所有体育、活动、自理课,这些其他同学最幸福和期盼的课却不属于我。记得高一下学期停下奥赛辅导后,我第一次上了一节自理课——那也是那个学期最后一节自理课了。回到宿舍我躺在床上看外面刚下过雨的白蒙蒙的天空,我感到了一种很大的幸福——对比那些在计算机前抓着头发冥思苦想的“自理课”,对比那些眼睛被电磁辐射烤的干涩的“自理课”,我真的感到很幸福,这样简单的幸福,能在自理课回宿舍躺躺的幸福。
    还有一点,我想班上的同学也会有印象。那时我和王福龙的晚饭经常只是一碗方便面。当时下午第四节我们常在机房,晚自习第一节又常有副课自习。遇到这种情况我们常常不去餐厅吃饭,一直靠到六点半再到科技楼下的商店买方便面,在办公室泡开。就是等面泡开的这段时间我们仍要抓紧时间做题,或咬着叉子讨论问题(王福龙的这个形象给我留下了很深的印象)。有几次讨论太投入忘了那边还泡着面,等到想起来时面已经烂的可以了。我在家中本来已经养成了吃完饭半个小时内不做任何运动或学习的习惯,但在那时也只能打破了。吃完饭我只能听一首歌当作休息或做一些整理文件夹这样的相对不太用脑的事,这就算休息了。有时我们调程序实在到了关键时候,往往连面也不去买了。一直要等到下第一节课我们赶回教学楼上第二节课再顺路买一碗面、泡上,下第二节课课间再解决掉。那时化学老师真好,有一次她发现了我们这种情况,竟让我们在她的课上先吃饭,真太感激她了。不过说句实话,空着肚子上课和胀着肚子上课感觉一样不强。
    那时教室里经常弥漫着一股方便面的味道,真对不起我的同学们。
    还有那段601岁月,还有那段早上4点半起床补课的岁月……想到这些我才敢说我们确实“稍微”吃了点苦。一点苦也不吃,没人能拿到国家一等奖,就是这样!
从科技楼到教学楼的这条路,不知“跑”了多少遍

四.我们的杨老师

讲到这里,讲了这么多,实际只讲了一个方面:我们自己的一方面。还有另外一方面:没有她,我们一定拿不到国家一等奖;有了她,我们一定能拿到国家一等奖。她就是我们最敬爱的辅导老师——杨金英老师。
    认识杨老师是在初四去烟台参加加试赛时。我见到杨老师的第一印象是她很严肃,这大概也是出于对她是莱州市唯一一个高级程序员的敬畏吧。但成为她的亲学生后我慢慢发现杨老师其实是个很爱学生、对学生关怀无微不至的老师。至于师德、敬业这些老师都具有的品质,她更是无可挑剔,堪称典范。我这样空口夸赞可能让许多人不信服,那就让我说几件事。
    就先说师德和敬业。杨老师为我们辅导做了那么多工作,可你相信吗?这本不是她的职责,或者说她根本没有必要付出这么多。因为杨老师并不是一个专职的“信息学奥赛辅导员”,她的职责只有日常教学,奥赛辅导只是兼职工作,并没有人为她付双份工资,但她却干了两件事,而且任劳任怨,而且付出太大!在那边辅导时,只要我们想去机房用机器,她总是想办法回机房开门。不管是白天黑夜,不管是工作日休息日,不管是她当时在校内校外,一个电话杨老师就会赶过来。杨老师总是陪着我们(不是监督),晚上我们靠到10点她也靠到10点。我们不吃晚饭她也不吃晚饭。晚上和休息日她本没有必要来学校她本可以在家中休息陪陪孩子,可只要我们在机房她就在办公室随时准备解决问题,满足我们的“种种”要求。我真的感觉对不住杨老师,而且我也感觉对不住程程——杨老师的孩子。杨老师的丈夫程绍彰老师也是我们年级的老师,而且是班主任。相比杨老师,程老师工作更忙。杨老师作为一个微机教师本该有相对宽裕的时间,但由于我们的存在,杨老师比程老师还要忙碌。所以我每次看到程程时总有种愧疚感。因为我们杨老师不能及时送程程上下学。因为我们程程不能按时吃饭。因为我们杨老师少了许多给程程辅导学习的时间……杨老师本没有必要为一个学生付出这么多,但她做到了。她做到了。
    有一件事,在我脑海中留有极深的印象。每当想起时我总感动的忍不住想流泪。但我从未向任何人说起,就让我借此机会讲讲吧。在学图论时,有一个问题是“最小树形图”。这是一个近年才被计算机界解决的难题,我在书中看到后一直想弄明白。自己钻研了一个周后没有结果我又在网上求救,得到的回答是“连国家队金牌第三名的选手也不会”。杨老师知道这个问题后我们先讨论了一段时间,最后决定“手工模拟”一下。所谓“手工模拟”就是用手工计算将计算机执行程序的过程模拟一遍。这是理清算法思路的一个很好的方法,但是从这个名字就可以看出,用手去模拟计算机是一件很费时的事情。杨老师知道我时间紧于是她说这项工作她来做。2天后,我见到了杨老师的模拟结果。它竟是钉起来的8开的一本。你知道有多少张?13张!8开13张!先不必管里面的内容的复杂度,单说8开13张,这需要多少时间和精力啊!而且这是最后的结果,要得到这个结果需要多少次尝试,失败,重来,重写,这样杨老师岂能就写了这13张。当时看到这13张纸我真的很震撼,很感动——不容易,太难了。我知道那个程序的复杂度,我知道写出这个结果的要付出多少。杨老师本可以知难而退的,可她迎难而上,完成了“手工模拟”——8开纸,13张。
    这是一件我记忆最深的事。还有许许多多的小事和细节我无法一一回忆。但我可以回忆到所有这些事给我的整体感觉,是感激;还有,不知如何回报。
    而杨老师对我的关心和帮助,又岂在奥赛本身。在学习和生活上杨老师同样给予了我极大的关怀和帮助。她不但重视我们的奥赛学习情况更重视我们文化课的学习。每次大考如果我的成绩出现了较大的波动,班主任还未找我,杨老师就先找到我了。杨老师总在尽力让我保持平稳的心态,因为只有她明白我所承受的压力。她知道我父亲对我参加奥赛的反对,因此她总想帮我说服父亲。为此她找过班主任,找过级部主任,甚至找过校长。杨老师从未给我任何压力,她总是鼓励我,同时一直为我减压,减轻负担。如果她能代劳的事她总不让我操心。
    在协调关系方面杨老师也投入了很多精力。毕竟我们搞奥赛的一小撮人是不走寻常路的“异己分子”,经常要打破学校日常固有的行动方式,因此给许多人添了乱,制造了麻烦。杨老师替我们承受了很多指责,她做了许多沟通,同任课教师、级部、校方,因而我们才能得到各方面的理解,我们才能有一个相对阻力小的宽松环境。我们明白,我们做的有些事是要在学校管理上撕开口子的,是“搞特殊”的,但真的,真的这是迫不得已:你要得到一个特别的结果,只能走一条特殊的路。如果你走的路是大家都走的,那么上帝为什么一定要把金苹果给你呢?杨老师很理解我们,因此虽然有些事可能要违反规定,可能要得罪人,但为了我们杨老师都默默承受了。而且杨老师从未在我们面前提及她的付出她的牺牲,包括前面讲到的她在个人休息、家庭方面的牺牲都是我自己感到的,并不是杨老师讲出来的。杨老师从不向我们讲一点难。
    我真的很感激杨老师,我不敢想象没有杨老师我们的学习会是什么样子。我在写给搞信息学奥赛的学弟学妹的经验总结上说:“你们一定要拿国家一等奖,必须要拿到!这是一个只重视结果的社会,你们必须拿出足够分量的证据证明你们的付出。你们拿不到国家一等奖,不用说对不起你们自己,首先你们对不起杨老师。你们想想杨老师为我们做的那么多事,你们应该明白你们要投入多少才能回报。”
    放在全国来看,杨老师并不是一名业务很强的辅导教练。在知识方面她不能和那些著名的教练相比。但我却认为杨老师是全国最“好”的奥赛教练。这种“好”是发自内心深处的,是由内而外震撼人心激励人心的。如果没有杨老师的关怀和爱护,在一次次失败和挫折的打击下,不要说取得什么好成绩,我很可能就要“撂挑子”了。我敢把话这样说绝对:没有杨老师我们一定拿不到国家一等奖,有杨老师我们一定能拿到国家一等奖。

五.我看信息学奥赛

文章写到这里,我已基本上讲完了我们信息学奥赛先出国家一等奖的主要原因。我不想再在这里做什么概括总结升华提高了。那是写华而不实的东西。从那些数字中,从那些小事上,大家不妨只凭“心”去感受一下,从细节处感受一下(不是说细节决定成败吗?):我们为什么拿国家一等奖。这是偶然?必然?
其实写这篇文章的目的并不是要争取什么改变什么,并不是要感动谁影响谁,我只是带着一种使命感,像司马迁那样,还原历史的真实,揭示不为人知的真实。为我自己,为杨老师,为其他所有oier。
    说心里话我觉得我们信息学奥赛一直处于一种和其他奥赛不同的很微妙的境地。有人常把我们从事的比赛说成是“计算机比赛”甚至是“玩电脑”。因为我们整日和计算机打交道,而电脑能干什么呢?打字、做网页、做课件、玩游戏、上网……人们觉得电脑中有些东西真难,比如系统设置,DOS命令,处理病毒,还有打字快一点……所以人们常想我们学的其实就是那些“难事”吧。其实不然,信息学奥赛就是信息学奥赛,信息学奥赛的主要任务是建立模型解决问题,知识核心是数据结构和算法,实现方式是计算机程序,而电脑只是一种工具。为了让学弟学妹们了解他们的水平我曾做了一份完整的“信息学奥赛知识能力体系”。如果有兴趣大家不妨看一看,了解一下信息学奥赛。这样也许更能理解我们要有怎样的付出才能取得成绩。

在联合国教科文组织的五大经典奥赛中,信息学奥赛其实是最难的,尤其是你想达到高层次。你只要想想大学软件专业的分数线你就可以想想一个好的程序员需要怎样的层次。可是许多人还是认为“计算机比赛”是件很轻松很有趣的事。在一些老师同学眼里,我是一个贪玩不爱学习的孩子。每次新老师接触我时总说:“听以前老师的评价你是个很聪明的学生,但是……”。可是我妈妈不这样认为,她知道我的“聪明”来自什么。我知道自己到底做了多少。
    我还记得我被告知拿到国家一等奖时的情景。那时2004年的圣诞前夜,我们正在进行月考。吃完饭回来班主任张老师正站在讲台上,告诉我:“你拿了国家一等奖。”当时我并没有笑,也没有表现的有多兴奋。张老师问我:“真不容易,啊?”我没有回答,只是轻轻笑了笑。现在回想当时的心情,真的一点兴奋也没有,我只是感到如释重负,甚至有种“总算结束了”的感觉。拿到国家一等奖我真的没有感到轻松,更不要说“骄傲”了。

    我就是这样拿到国家一等奖的。这就是我们信息学奥赛先出国家一等奖的原因。

最后我想对过去两年内所有帮助过我的人道一声 谢谢。 还有对我带去麻烦的人说一声:对不起!原谅我吧。

六.信息学奥赛的知识能力体系

数学离散数学集合论 关系 代数系统 数理逻辑 图论
组合数学排列组合 母函数 群论 递推与递归
数学规划线性 动态 整数
高等数学向量 行列式与矩阵 微积分初步
概率统计
初等数论素数 整数理论 同余与模线性方程
计算几何

数据结构存储结构线性表
(一级结构)静态:数组 栈 队列 广义表 字符串
动态:指针 链表 动态数组

(二级结构)表示法(静态、动态) 二叉树 森林

(三级结构)表示法(矩阵、邻接表、三元组)
特殊结构散列表(HASH表) 并查集 线段树 后缀树 哈夫曼树与哈夫曼编码 地址表 Bit图 滚动数组 棋盘图 边顶置换图 二分点图(网络流)
常用方法遍历树 图 前/中/后序优先
转化拓扑排序(三级结构转一级结构) 最小生成树 最小树形图(三级结构转二级结构) 逆遍历
压缩路径树的线索化
压缩存储
查找线性直接 折半 Fab
树形二叉查找树 平衡二叉树B 树 B-树 线索二叉树索引表
排序插入排序直接排序、折半排序、2-路排序
交换排序冒泡排序 快速排序 归并排序
堆排序
基数排序链式基数排序 桶排序

代码素养代码的编写速度和准确性 误码率
算法实现
算法优化
调试 查错 测试
习惯变量名 注释 缩进 模块化

基本算法数学高精度计算(模拟计算)
表达式处理括号 前/中/后缀表达式 表达式树
排列组合求值 嵌套控制
高斯消元法
筛选素数素数表
分数处理
基本操作实现大量数据赋值与移动Fillchar fillword move等函数
处理实数比较大小 高精度
字符串处理基本函数 KMP算法

图论
(显示图搜索)路径问题
(边集)连通性测试传递闭包算法 极大强连通子图 最小点基
最短路问题标号法 第k小路 减半最短路Dijkstra算法 floyd算法 bellman-ford算法 Warshall算法
特殊路径欧拉路及回路 哈密尔顿路及回路
图的中心和重心
生成树Kruskal算法 Prim算法

(顶点集)覆盖集
独立集
支配集
割顶和块
网络流容量有上下界的网络最大 / 小流
容量有上下界的网络最小费用最大 / 小流
顶容量网络最大流
供求约束可行流
二分图匹配匈牙利算法
关键路径

搜索
(隐式图搜索)深度优先搜索
(回溯法)剪枝优化
预处理
记忆化搜索
可变下界的深度优先搜索
随机化搜索
广度优先搜索双向广搜 *多向广搜
启发式搜索(A算法)
分枝定界

多阶段决策贪心算法
动态规划

其他构造法穷举
模拟

七.我的参赛历程

第七届全国信息学奥林匹克联赛 (NoiP2001) 初赛 2001年10月 莱州
全市第3名,前2名有资格参加烟台加试赛

第八届全国信息学奥林匹克联赛 (NoiP2002) 初赛 2002年10月 莱州
全市第2名,第1名有资格参加烟台加试赛

第九届全国信息学奥林匹克联赛 (NoiP2003)初赛 2003年10月 莱州
全市第1名,差点因为父亲的反对没去成

第九届全国信息学奥林匹克联赛 (NoiP2003)加试赛 2003年10月 烟台
终于冲出了莱州,激动不已
“01”的考号并没有给我带来幸运,我回家了

NOIP2004夏令营 2004年8月 烟台
15天时间,系统学习了算法,认识了一大堆oier 。拉了一次肚子,住了次院

第十届全国信息学奥林匹克联赛(NOIP2004)加试赛 2004年10月 烟台
看到题目时我乐坏了——4道题我都做过。成绩出来后我大惊失色,只有20分。烟台那边的解释时:文件丢失,只找到我的一个程序。
什么事都让我遇上了,不过,我还是被允许参加复赛

第十届全国信息学奥林匹克联赛(NOIP2004)复赛 2004年11月 潍坊
去了趟“风筝之乡”我还真带回了件风筝,一件有特殊意义的风筝
就是在这届复赛,我拿到了国家一等奖

NOI2004全国信息学奥林匹克竞赛,山东省省队选拔赛 2005年5月 济南
6天时间 3场比赛 300页讲义,还有济南的夜景,还有老朋友相聚
第十一届全国信息学奥林匹克联赛 (NOIP2005)2005年11月 日照
我的告别赛,这次比赛结束后我正式退役


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存