某oier个人竞赛经验

合集下载

数学奥林匹克之路小学数学竞赛经验分享

数学奥林匹克之路小学数学竞赛经验分享

数学奥林匹克之路小学数学竞赛经验分享作为小学生,我曾经积极参加数学奥林匹克竞赛,在这个过程中收获了许多经验和教训。

今天,我将分享我的数学竞赛经验,希望能给其他小学生在数学奥林匹克之路上提供一些帮助和启示。

第一,培养对数学的兴趣是关键。

数学竞赛并不仅仅是为了获得好成绩,更重要的是提升自己对数学的兴趣和热爱。

只有对数学有浓厚的兴趣,才能坚持不懈地学习和参加竞赛。

因此,在备战数学竞赛时,我们要培养对数学的兴趣,可以通过解有趣的数学问题、参加数学俱乐部或者找到一位优秀的数学教师进行探讨等方式来激发兴趣。

第二,熟练掌握基础知识是基础。

对于小学生来说,数学竞赛的基础知识通常都是在课堂上学习的内容。

因此,在备战竞赛时,我们要将课本知识牢固掌握,并且进行广泛的练习。

通过反复做题,我们可以逐渐熟悉各种类型的题目,并提高解题的速度和准确度。

第三,注重解题方法和思维能力的培养。

数学竞赛不仅仅考察知识的掌握程度,更注重解题思路和方法的灵活运用。

因此,在备战竞赛时,我们既要搞清楚各种解题方法的原理和步骤,也要学会运用这些方法来解决实际问题。

同时,我们还需要培养灵活的思维能力,学会从不同的角度思考问题,找到问题的本质,从而能够快速有效地解决问题。

第四,保持良好的心态和积极的态度。

数学竞赛是一项长期的过程,充满了挑战和压力。

在备战竞赛时,我们要保持积极的态度,相信自己的能力,并且坚持不懈地努力。

遇到困难和挫折时,要保持乐观的心态,相信自己一定可以战胜困难,取得好的成绩。

第五,多参加模拟竞赛和交流活动。

在备战竞赛过程中,我们可以参加一些模拟竞赛和交流活动,这样既可以检验自己的水平,也可以通过与他人的交流和互动来学习和提高。

通过模拟竞赛,我们可以提前熟悉竞赛的环境和题型,增强自己的比赛经验,为正式竞赛做好准备。

总结起来,数学奥林匹克之路是一条充满挑战和机遇的道路。

在备战竞赛时,我们需要培养对数学的兴趣,扎实掌握基础知识,注重解题方法和思维能力的培养,保持良好的心态和积极的态度,并且多参加模拟竞赛和交流活动。

竞赛经验

竞赛经验

竞赛成绩=实力x经验给大家解释一下这个公式。

我有一个同学,可以算是神犇级别的了吧。

他的竞赛实力相当牛b,单源、DP什么的伪代码能轻松默下来,红黑树、博弈论甚至FFT都能讲得头头是道,而且仅仅是一名初二学生!去年他参加了noip普及组的比赛,结果出人意料——只有第一题分解质数(好像叫这个名吧...)得了10分,其他题全部爆0。

事实上,他所有题都做了,但是他是抱着AK的心来的,所有的题他都是只过了样例就去做下一道了。

你们也知道的,CCF的样例向来都很弱,尤其是去年...他竞赛实力弱吗?一点不弱,他是我们那个考场唯一一个文化之旅写了SPFA这个正确算法的人,但是,很可惜,由于某变量忘记置0导致爆0,考试结束的时候甚至连样例都没试。

第一题,一个逻辑错误;第二题,某情况下变量加不+1但是没考虑;第三题,强行按照自然数拆分的办法写的DFS;这些错误很小,但是这千里之堤就毁于小小的蚁穴了!他的竞赛实力很强,但是做题经验几乎为0,他几乎所有的时间都用在了研究算法上,很少做题。

我相信看我这篇文章的同学里也有类似,一段代码出来,大的框架没有问题,就是W A(1),后来抓耳挠腮找了几个小时才发现就是诸如变量初值,变量置零,递归形参、局部全局变量用错这样的小问题。

实不相瞒,我直到现在依然如此。

为什么?答案很简单,做题少了!做的题多了,错误出得多了,也就有经验了,熟能生巧吗!拿到一道题,有经验的人会先按照人类处理该问题的思维去构造一个数学模型,然后去掉不必要的模拟,找可行优化,选用合适的数据结构和算法去实现,整个过程10多分钟就好了,绝对比你边写边想算法犯了逻辑错误去查几个小时要划算!呵呵,说的偏了,但都是大实话。

前言的最后送给大家几句话:不要好高骛远,即使是大神的第一次也不会顺风顺水;不要掉以轻心,即使是NOI也有忘记删调试输出、变量打反、没用文件这样错误的人;不要垂头丧气,CLJ也是高三才拿到IOI冠军!我们还年轻...考场瞬息万变,有不会做的题很正常。

NOI2020失败总结

NOI2020失败总结

NOI2020失败总结首先声明本人是高二老年OIer,代表OI界最低水平,NOI2020 Cu rk2选手。

没错你可以通过这条人肉我是谁不完全契合标题,以本人的碎碎念为主。

因为人总是喜欢遗忘,所以我会用这篇文章来警示自己。

预计会在noi2021结束后将这篇文章补全成为OI生涯回忆录并将其公开,希望到时候会以“一日看尽长安花”的心态将其补全,而不是像现在一样一副郁郁不得志的样子。

警告:本人语文功底奇差无比,这是一篇不合格的流水账,建议学业压力较大的同学不要阅读这篇文章浪费时间。

2020.6好不容易从颓废的在家生活改为在校生活。

在期中考试取得了rk200+的好成绩,然后成功再次投入到OI集训中。

和yfl,yxl,hy,ljl,lyn,szq度过了相对愉快的机房生活。

突然传出了lsy大神不去参加省选的消息,不由得感到遗憾甚至不理解,其实他完全可以不学OI直接省选然后noi创造奇迹啊。

但lsy的退役也为lyn大佬noi创造奇迹提供了条件之后便是省选,虽然发挥的也没有尽如人意,但是也取得了令个人较为满意的成绩,因为超越了一部分努力程度与智商远超过我的选手。

虽然顺利进入A队,但实际上省选过程中也反映了我极大的问题,d1t1花费了三个多小时调试,几乎是处于崩盘的边缘,严重体现了我技巧的生疏。

与此同时我d1t3爆搜写挂,丢失15分,虽然没有影响我进省队,但noi上的爆搜写挂直接将我送退役。

2020.7-2020.8省选结束后仍然继续着停课生活,但是机房里只剩下lyn,szq,clqq,感到十分惋惜。

那时候经常喜欢离开学校后继续去星巴克看电脑,但现在已经摒弃了这个习惯,因为这只是为我居家学习效率不高开脱。

比较值得一提的是当时参加了几天镇中介绍的acm比赛,和ruogu和ouuan巨佬进行了一定交流,也写了少量的soj的题目。

不过每次把比赛中比较困难的题目拿给lyn巨佬他都能很快想出答案,开始注意到他的超强实力。

szq巨佬也给了我相当大的帮助。

OI注意

OI注意

这篇东西将永远置顶到我的OI生涯结束,我也会根据实际情况而做修改,希望也能帮助到其他的OIER。

一、竞赛过程step1:审题(30分钟左右)1、通读题目2、对问题在算法层次思考(注意不要漏掉题目中任何条件)3、估量题目实现难度(算法设计难度、编程复杂度)4、按照实现难度从小到大制定做题顺序先做把握大的题,什么是把握大的题?也就是思路完整,算法熟悉,易于调试的题。

(虽然题时由简单到难,但还是先读一遍较好,这样心里有底,才可以合理分配时间)step2:构思、编写代码1、设计算法、存储结构(程序模块)2、验证算法(证明或找反例)3、编写代码(对模块细化)编码细心与否,直接决定了下一步也就是调试的难度。

看着自己在纸上写出的程序框架(一定要有,很重要,可以帮你节约不少时间),小心地把代码写出来,参数尽量使用有意义的名称。

(变量的初始化一定要注意啊啊啊!)这一步不求快,但求稳,一定不要犯低级错误。

写完整个程序后不要急于编译,先把程序通读一遍(这一步有很多人都忽略掉,最好不要忽略,很有帮助的),确认无误后再开始编译调试。

step3:测试、调试1、设计数据,黑盒测试(数据要全面:划分等价类,每一类取典型小规模数据;设计边界数据;数组常数设小点,测试数组越界,但别忘了改回来;有规律大数据测试时空承受能力)2、调试模块化调试,先跳过过程函数看结果是否正确,若不正确锁定出错模块集中调试3、静态检查排错step4:检查1、程序名、大小写2、文件输入输出3、数组范围常量改回来没有,其他常量改了吗二、关于骗分方法0、简单贪心方法1、输出特定条件的解有时候一个问题条件复杂,我们想不出很好的解法,但是简化了某些条件以后,解很容易求出。

这样的题目,我们可以找到条件,使用多个if语句,根据简化条件输出问题的解。

这样的方法往往比简单贪心好些。

方法2、小规模数据搜索、大规模数据贪心例如readln(n);if n<100 then搜索else贪心方法3、搜索+贪心如果问题要求最优解,宽搜的时候可以对于给一步选择设个估价函数,只保留估价函数最优的几个进队;深搜时可以设置一个阀值,超过该阀值的就不进行搜索。

OI技巧

OI技巧

OI技巧书籍推荐:绿书+蓝书(青少年信息学奥林匹克竞赛培训教材系列)、算法导论、粉书(全国青少年信息学奥林匹克联赛培训教材)、黑书(算法艺术建议水平高的人看)、新编实用算法(建议水平高的人看)题库推荐:Usaco(强烈推荐,很经典的题库,Nocow有翻译)、Vijos (一个非常不错的中文题库)、Ural(水平有所提高了可以去做做,也有很多经典题)、Rqnoj(题目质量不是太好,不过也是一个题库)Codevs(一般)需要学的知识:40%来自于书本、40%来自于做题、20%来自于网上其它的资料。

1、学会总结,基本上每学完一个章节的东西就会拿多一段时间来进行总结。

总结的时候,先列出一个目录,把这一节学到的知识点写进去。

然后在下面分别拓展出这个知识点的原理、用途、编程流程、关键代码、优化、和其它同类算法的比较、复杂度估计、模块化代码、相应习题等等。

这样,可以很容易的把一个一个的知识点串在一起记住它。

(附录里有我的总结样例)2、要拿出一定的时间看书,书是人类进步的阶梯。

相信很多OIer都很喜欢做题,忽略了看书这个重要的环节。

其实只有阅览群书,才能学到更多的知识。

例如,某个算法你会N^3的算法,但是某本书上用N^2,甚至N的复杂度就给解决了。

如果不看书,如果考试正好出这个知识点,或许你就只能拿部分分了。

3、合理安排时间(特指放假或集训的时候)。

清晨7点到9点这段时间,是人们头脑最清醒的时间,这个时间段内,尽量不要去调程序,可以去做一些其它的事情,比如看书、总结等等。

而9点之后这段时间,建议去做题,这个时候一般花一个小时就可以编出在其它时间要花一个半小时才能编出的程序。

到了中午,吃完饭一定要睡觉,否则下午会很没精神,效率会很低的。

下午呢,一般就比较综合了,比较随意了,可以自己安排。

晚上,我一般都是继续调程序,因为想不出晚上干什么会高效一些。

4、学会适当的休息,不要长时间干同一件事情。

当你编程序进入了一个死角的时候,或许思维会很混乱,总想找出错误或优化这个算法,但是一片空白,很盲目。

NOIP选手竞赛心得

NOIP选手竞赛心得

竞赛心得1.知识是基础,能力最重要初赛考的知识点,大纲如是说:计算机基本常识/基本操作和程序设计基本知识。

选择题考查的是知识,而填空题更加重视能力的考查。

例如写程序运行结果,大纲规定是必考的。

试卷中给出程序的并不复杂,语句的含义容易明白,但是悟性好的选手总是很快就能体会到程序的设计思路并得出正确的答案,机械模仿计算机硬算出结果的同学往往做的慢的多,而且容易失误。

2.各种题型的解题经验。

1)选择题一般它们是比较容易得分的,一共30分,不可错过!我建议大家找一本等级考试二级的书看,知识讲的系统一些。

选择题一般不超过二级的知识点。

另外,有DOS经验的选手可能会占一点便宜,因为有些题目可以根据经验判断。

2)填空这部分题目对数学要求要高一点,往往考查的是代数变形,数列(一般是考递推),也考查一些算法和数据结构知识。

建议大家多花一点时间做,尽量做对。

例题:1.数组A[30..100,20..100]以行优先的方式存储,每个元素占8个字节,且已知A[40 ,30]的地址为2000,则A[60,90]的地址为:_________________如果以列优先存储,则为:_________________考查了数据结构中数组存储方式。

2.设栈S的初始状态为空,现有6个元素组成的序列{1,3,5,7,9,11},对该序列在S 栈上依次进行如下操作(从序列中的1开始,出栈后不在进栈):进栈,出栈,进栈,进栈, 进栈,进栈,出栈,进栈,问出栈的元素序列是:_________,栈顶指针的值为______栈顶元素为:___________________考查了数据结构中的栈。

3.把中缀表达式写成后缀及前缀表达式(1) (P+Q)*(A-B)/((C+D)/(E-F))-G 后:_________________ 前:_________________(2) A-C*D+B/E*(D/A) 后:_________________ 前:_________________4.根据后缀表达式,写出前缀及中缀表达式ABC/DE+GH-/*+ 前:_________________ 中:_________________这两题实际上考查了数据结构中的表达式树5.用一个字节来表示整数,最高位用作符号位(1为正,0为负),其他位表示数值,(1)这样的表示法称为原码表示法,表示数的范围为:_________________(2)原码表示法,将出现_________________有两种表示(3)实际上计算机中是用补码表示数,其表示范围为:_________________考查了数的原码,补码表示。

数学小天才小学数学竞赛经验分享推荐

数学小天才小学数学竞赛经验分享推荐

数学小天才小学数学竞赛经验分享推荐我是一个小学生,热爱数学,每年都参加数学竞赛。

通过多年的参赛经验,我总结出一些方法和技巧,希望能与大家分享。

在这篇文章中,我将介绍一些我在数学竞赛中的经验,并推荐一些有助于提高数学能力的资源。

首先,为了在数学竞赛中取得好成绩,良好的基础知识是至关重要的。

我们必须扎实掌握数学的基本概念、定理和公式。

要做到这一点,每天坚持做一些数学题是必不可少的。

可以选择一些像"小猿搜题"、"小猿口算"等手机应用,它们提供了大量的数学习题和测验,有助于巩固我们的知识。

其次,做好时间管理也是重要的。

比赛中时间非常紧张,我们必须在规定的时间内完成尽可能多的题目。

因此,在平时的练习中,要注意控制好每道题目花费的时间。

可以在做题时使用计时器,逐渐提高自己的速度。

另外,还要学会跳过一些复杂的题目,把精力集中在能够解决的问题上,这样有助于提高我们的答题效率。

此外,良好的解题思路和方法也是取得好成绩的关键。

在参加数学竞赛时,我们经常会遇到一些复杂的问题,需要我们运用创新的思维方式去解决。

在解题过程中,我们可以尝试运用逆向思维、归纳法、矩阵方法等不同的解题方法,不断拓宽自己的解题思路。

同时,多参加一些数学讲座和研讨会,学习一些高年级学生的解题方法,对提升解题能力非常有帮助。

最后,我想向大家推荐一些有助于提高数学能力的资源。

首先是数学竞赛的参考书籍,如《小天才数学竞赛习题集》、《小学数学竞赛辅导书》等。

这些书籍内容丰富,涵盖了各个年级的数学题目,对于我们提高解题能力非常有帮助。

另外,可以参加一些数学培训班或者线上课程,这些机构会提供专业的数学指导和辅导,帮助我们更好地理解数学知识。

总之,数学竞赛是一个锻炼我们数学能力的好机会,通过参加竞赛,我们不仅可以提高自己的数学水平,还可以培养解决问题的能力和创新思维。

希望我的经验和推荐对大家有所帮助,让我们一起努力成为数学小天才吧!参考书目:- 小天才数学竞赛习题集- 小学数学竞赛辅导书。

一个不成功的退役蒟蒻OIER的自白

一个不成功的退役蒟蒻OIER的自白

一个不成功的退役蒟蒻OIER的自白2011年的夏季,记忆中的天气似乎没有那么炎热。

我唯一留有残存印象的,是一个小海龟;大人说,那对你很有帮助,启迪智慧,锻炼思维能力。

那一年,我刚刚结束三年级的学业。

我不知道这样的图形,我不知道那样的公式,我和一群高一届的“学长们”在一起。

听课很累,我几乎不明白任何的数学知识,仅仅是勉强学会了如何让那个用粗劣的线条绘成的小海龟动起来。

一个月过去了,我几乎每天像上课一样,没有什么假期。

初级班的结业考试,我得了一个特别的分数:111。

很奇怪,许多比我高一届的同学也没有达到这个成绩,老师说,我做的很好了。

因为我的坚持,我没有去参加第二个月的学习——因为我不想就这样出卖我的假期,我并没有觉得这个海龟带给我很多乐趣。

2014年的夏季,有些炎热——或许是因为世界杯的缘故。

当我还没有弄清楚任何关于我将要进入的初中的情况时,我莫名其妙地成为了一场无趣入学测试的第一。

于是我似乎顺理成章地进入了这个中学实际没有取消的,所谓最优秀的班级。

而在这之后我才明白,这个班级是为了信息学竞赛而生的。

这一年,是一切与信息学有关的东西在我视野中消失的第三个年头。

起步就是C++。

芜湖早在05年就开始从Pas转型为C,而关于这一切我还根本一窍不通。

事实上,我的大多数同窗都从小C那里过来,参加的是小学组的省赛。

唯独我,和为数不多的几个,连C++是什么也不知道。

老师告诉我们,十一月就是我们第一次竞赛的日子,现在只有两个月时间。

一大堆从前闻所未闻的东西,已经超过了我的接受范围。

而一张一张往年试卷,确实没有几题在我的能力之内。

但我过了初赛。

这是可笑的,滑稽的。

我几乎是背着那些奇怪的名词,碰到了一年简单的试卷,拿到了一个70多分。

我很高兴,以为自己得了许多窍门。

事实上还有一件事没有提——分数线刚刚40多分。

复赛,说实在的,我就是去玩一趟。

可是,一切胡乱而无畏的行动都会带来意想不到的后果。

我的复赛成绩是95分——一题满分都达不上。

编程竞赛经验分享与技巧

编程竞赛经验分享与技巧

编程竞赛经验分享与技巧1. 引言1.1 概述编程竞赛作为一项高水平的技术竞争活动,受到越来越多程序员和计算机科学爱好者的关注与参与。

在这个快节奏的竞赛环境中,选手们利用自己的编程能力和解决问题的思维方式,面对各种挑战和难题。

本文旨在分享我个人参加编程竞赛的经验,并提供一些实用的技巧,在这个过程中使读者能够更好地应对比赛中遇到的各种情况。

1.2 文章结构本文将分为五个部分进行讨论:第一部分是引言部分,概括了整篇文章内容,并简单介绍了编程竞赛的基本背景和意义。

第二部分是编程竞赛经验分享,包括准备阶段、比赛策略以及解题思路。

我们将探讨如何在竞赛前做好准备工作,如何制定有效的比赛策略以及如何迅速解决问题。

第三部分是技巧与技术,我们将重点介绍算法优化、时间与空间复杂度分析以及调试与错误处理等方面的知识。

这些技巧和技术对于优化解题效率以及快速调试bug非常重要。

第四部分是团队合作与交流,我们将讨论在团队中如何分工合作、沟通与协作技巧以及解决冲突和团队建设等问题。

编程竞赛也可以是一个彼此互助、合作共赢的过程,所以团队合作非常重要。

最后,第五部分是结论,总结经验和收获,同时强调编程竞赛的持续学习与进步意义。

通过参加编程竞赛,我们不仅能够锻炼自己的技能,还能够不断提高自己并取得更好的成绩。

1.3 目的本文的目标是帮助读者更好地理解编程竞赛,并提供一些实用的经验分享和技巧。

通过阅读本文,读者将了解到如何在准备阶段进行有效的学习和准备,如何制定比赛策略以及如何优化算法以实现更好的解题效果。

此外,在团队合作方面也能够获得一些有益的启示和指导。

无论您是已经参加过编程竞赛或是初次接触,希望本文能够为您提供一些启发和帮助,使您在未来的编程竞赛中取得更好的成绩。

2. 编程竞赛经验分享:2.1 准备阶段:编程竞赛的准备阶段非常重要,这决定了你在比赛中的表现。

首先,熟悉比赛规则和格式是必需的。

不同类型的编程竞赛可能有不同的规则和评分标准,包括时间限制、提交格式等。

NOI及NOIP需要知道的与自己的心得

NOI及NOIP需要知道的与自己的心得

一、(搜索)双向广度搜索广度搜索虽然可以得到最优解,但是其空间消耗增长太快。

但如果从正反两个方向进行广度搜索,理想情况下可以减少二分之一的搜索量,从而提高搜索速度。

范例:有N个黑白棋子排成一派,中间任意两个位置有两个连续的空格。

每次空格可以与序列中的某两个棋子交换位置,且两子的次序不变。

要求出入长度为length的一个初始状态和一个目标状态,求出最少的转化步数。

问题分析:该题要求求出最少的转化步数,但如果直接使用广度搜索,很容易产生数据溢出。

但如果从初始状态和目标状态两个方向同时进行扩展,如果两棵解答树在某个节点第一次发生重合,则该节点所连接的两条路径所拼成的路径就是最优解。

对广度搜索算法的改进:1。

添加一张节点表,作为反向扩展表。

2。

在while循环体中在正向扩展代码后加入反向扩展代码,其扩展过程不能与正向过程共享一个for循环。

3。

在正向扩展出一个节点后,需在反向表中查找是否有重合节点。

反向扩展时与之相同。

对双向广度搜索算法的改进:略微修改一下控制结构,每次while循环时只扩展正反两个方向中节点数目较少的一个,可以使两边的发展速度保持一定的平衡,从而减少总扩展节点的个数,加快搜索速度。

二、(搜索)分支定界分支定界实际上是A*算法的一种雏形,其对于每个扩展出来的节点给出一个预期值,如果这个预期值不如当前已经搜索出来的结果好的话,则将这个节点(包括其子节点)从解答树中删去,从而达到加快搜索速度的目的。

范例:在一个商店中购物,设第I种商品的价格为Ci。

但商店提供一种折扣,即给出一组商品的组合,如果一次性购买了这一组商品,则可以享受较优惠的价格。

现在给出一张购买清单和商店所提供的折扣清单,要求利用这些折扣,使所付款最少。

问题分析:显然,折扣使用的顺序与最终结果无关,所以可以先将所有的折扣按折扣率从大到小排序,然后采用回溯法的控制结构,对每个折扣从其最大可能使用次数向零递减搜索,设A为以打完折扣后优惠的价格,C为当前未打折扣的商品零售价之和,则其预期值为A+a*C,其中a为下一个折扣的折扣率。

OI比赛经验谈

OI比赛经验谈
相反没有好的比赛能力,你的成绩将很不稳定,在OI现行制度下,极可能滚 粗。 毫不夸张的说,我认识就有十数名选手因为比赛策略或者细节问题导致没有 进队或者没有得到本该得到的名次。

令人悲伤的故事

某选手实力强劲,但是NOIP犯小错误,省选又犯小错误,最后没进省队, 但是之后在NOI获得邀请赛AU。
ZJOI 2011 day1

对傻逼题要格外小心
NOI 2011 day 2

考场策略问题 不够冷静
我个人成功的OI比赛

ZJOI 2011 day2 NOIP 2011

NOI 2011 day1
ZJOI 2011 day2

正确的做题顺序 正确的比赛策略

最后是以上两点导致的优秀的心态。


我个人失败的OI比赛

NOIP 2010 ZJOI 2011 day1


NOI 2011 day2
CTSC 2012 day1 ZJIO 2012 day2

NOI 2012 day1
NOIP 2010

考场策略问题 明明可以做出来的题目却没有做出来。


搜索题居然最后CE了
去写不是很熟悉的算法

然后再每题花10分钟略微细致的分析加想一下。基本上不难的题目都可以做 出,就算做不出也会有“这题不是很难”的感觉,并且标上目前这题你能得 到的分数。那么根据之前对题目的了解,就可以决定做题的顺序了。
同时一个很推荐的方法是先尽快的把暴力都敲一下,这样既能对拍又能保证 最低的分数,当然你的手速得快一点,不过暴力都写很久正解估计更写不出 来了>_>。

信息学竞赛中的算法竞赛技巧与经验分享

信息学竞赛中的算法竞赛技巧与经验分享

信息学竞赛中的算法竞赛技巧与经验分享信息学竞赛是一个旨在培养学生计算机科学技能和解决问题能力的竞赛。

在竞赛中,算法编程是关键的技巧之一。

本文将分享一些在信息学竞赛中取得成功的算法竞赛技巧和经验。

一、算法竞赛的重要性在信息学竞赛中,算法竞赛是评价学生能力的重要指标之一。

通过算法竞赛,可以锻炼学生的思维能力、应对问题的能力以及编程实现的能力。

同时,算法竞赛也是选拔优秀学生参加国际比赛的途径。

二、优化时间复杂度在信息学竞赛中,算法的时间复杂度是一个重要的指标。

目标是寻找最优解,而最优解通常是具有较低的时间复杂度的解。

因此,为了提高算法的效率,我们应该尽量将时间复杂度优化到较低的程度。

1. 选择合适的数据结构:在解决问题时,我们应该根据问题的特点选择合适的数据结构。

例如,对于需要频繁插入和删除操作的问题,可以选择使用链表;对于需要高效查找的问题,可以选择使用二叉搜索树或哈希表。

2. 利用已经计算过的结果:在解决问题时,我们可以通过记忆化搜索或动态规划等方法,将已经计算过的结果保存下来,以便重复使用。

这样可以减少重复计算,提高算法的效率。

3. 减少循环次数:在编写代码时,我们需要尽量减少循环次数,减少不必要的计算。

可以通过优化算法逻辑、使用合适的数据结构等方法来实现。

三、掌握常用算法在信息学竞赛中,掌握常用的算法是非常重要的。

以下是一些常见的算法:1. 搜索算法:深度优先搜索(DFS)和广度优先搜索(BFS)是两种常用的搜索算法。

在竞赛中,我们可以根据问题的特点选择适合的搜索算法。

2. 动态规划:动态规划是一种常用的优化算法。

通过将问题分解成子问题,并保存子问题的解,可以避免重复计算,提高算法的效率。

3. 贪心算法:贪心算法是一种通过每一步局部最优选择来达到全局最优解的算法。

在一些问题中,贪心算法可以得到较好的结果。

4. 图论算法:图论算法在信息学竞赛中也非常重要。

例如最短路径算法(Dijkstra算法、Floyd-Warshall算法)和最小生成树算法(Prim 算法、Kruskal算法)等经常被使用到。

算法竞赛生涯年度总结(3篇)

算法竞赛生涯年度总结(3篇)

第1篇引言转眼间,一年又即将过去,回首这一年,我的算法竞赛生涯充满了挑战与收获。

在这篇文章中,我将对自己在算法竞赛中的经历进行总结,分享我的心得体会,以及对未来的展望。

第一章:初入竞赛之门2023年,对我来说是算法竞赛生涯的开端。

那时,我还是一个对编程一知半解的新手,对算法竞赛充满了好奇与期待。

在一次偶然的机会下,我接触到了编程,并逐渐对算法产生了浓厚的兴趣。

于是,我决定投身于算法竞赛的世界。

第二章:初识算法之美在刚开始接触算法竞赛时,我对各种算法一窍不通。

为了弥补自己的不足,我利用业余时间学习编程语言,阅读算法书籍,观看教学视频。

通过不懈的努力,我逐渐掌握了诸如贪心、动态规划、二分等基本算法。

在这个过程中,我体会到了算法之美,也找到了自己在竞赛中的定位。

第三章:实战磨砺,积累经验为了检验自己的学习成果,我积极参加各类线上线下的算法竞赛。

在比赛中,我学会了如何分析问题、设计算法、编写代码。

尽管在初期,我的成绩并不理想,但我从未放弃。

每一次的失败都是一次宝贵的经验,让我更加坚定地走在算法竞赛的道路上。

第四章:团队协作,共创辉煌在算法竞赛中,团队协作至关重要。

这一年,我有幸加入了优秀的团队,与队友们并肩作战。

在比赛中,我们互相鼓励、共同进步。

正是这种团结一心的精神,让我们在多个比赛中取得了优异成绩。

第五章:挑战自我,勇攀高峰在经历了无数个日夜的奋战后,我终于迎来了人生中第一个重要的比赛——全国大学生程序设计竞赛(ACM ICPC)。

虽然我们在比赛中遇到了诸多困难,但凭借着坚定的信念和精湛的技艺,我们成功闯入了决赛。

虽然最终未能夺冠,但这段经历让我更加深刻地认识到自己的不足,也为我今后的算法竞赛生涯奠定了坚实的基础。

第六章:收获与感悟回首这一年,我收获颇丰。

在算法竞赛中,我不仅学到了知识,更学会了如何面对挑战、战胜困难。

以下是我这一年来的几点感悟:1. 坚持不懈:在算法竞赛的道路上,没有捷径可走。

只有通过不懈的努力,才能取得优异的成绩。

信息学竞赛总结及经验分享

信息学竞赛总结及经验分享

信息学竞赛总结及经验分享本文旨在总结并分享我参加信息学竞赛的经验以及一些有用的技巧和策略,希望对后来的竞赛参与者有所帮助。

一、竞赛准备阶段1. 深入理解知识点:在参加竞赛之前,务必对相关的信息学知识点进行深入的学习和理解,包括基本的数据结构与算法,编程语言的特性等。

只有打好基础,才能更好地应对比赛中的各种问题。

2. 拓宽视野:参加竞赛的同时,要多关注信息学的最新动态和发展趋势。

可以通过阅读相关的书籍、论文、参加学术研讨会等方式来拓宽自己的视野,提高自己的综合素质。

3. 解题训练:解题是提高竞赛成绩的关键。

多做一些模拟题和历年真题,尝试不同的解题方法和思路。

通过反复练习,提高解题的速度和准确性。

4. 组队合作:信息学竞赛通常是以团队合作的方式进行,所以良好的团队合作能力也至关重要。

与队友进行密切的合作,灵活运用各自的优势,共同攻克难题。

二、竞赛过程中的技巧和策略1. 阅读题目:比赛开始后,首先要仔细阅读题目,了解所给问题的要求和限制条件。

对于不理解的概念或者专业术语,可以进行快速搜索和阅读相关资料,以便更好地理解题目。

2. 划分步骤:解决一道信息学题目通常需要多个步骤,将这些步骤进行划分,可以使问题更加清晰明了。

可以通过画图、分解问题、设计算法等方式进行划分,并按照步骤逐一解决。

3. 设计测试用例:在解决问题的过程中,可以针对不同的条件设计多组测试用例,来验证自己的解题方法和程序的正确性。

这样可以及时发现问题并进行调试。

4. 时间管理:比赛时间有限,要合理安排时间,把握好每个问题的解答时间。

如果遇到难题,可以先放一放,解决其他问题,再回过头来解决难题,避免浪费过多时间。

5. 交流合作:与队友保持密切的沟通和合作,共同研究解决方案。

可以互相借鉴和启发,提高解题效率和质量。

同时,不要忽视与其他参赛者的交流和学习,可以通过交流会议、网络平台等途径来分享经验和思路。

三、总结与反思1. 分析错误:比赛结束后,要及时对解题过程中的错误和不足进行分析和总结。

算法竞赛经验分享

算法竞赛经验分享

算法竞赛经验分享算法竞赛是一场充满挑战和乐趣的智力角逐,它不仅考验参赛者的编程能力,更对算法知识的理解和运用提出了很高的要求。

在多年参与算法竞赛的过程中,我积累了不少宝贵的经验,希望通过这篇文章与大家分享,能对准备参加算法竞赛的朋友们有所帮助。

一、基础知识的扎实掌握算法竞赛就像是一座高楼大厦,而基础知识则是这座大厦的基石。

首先,数据结构是必须要精通的。

比如数组、链表、栈、队列、树、图等等,要清楚它们的特点、适用场景以及操作的时间复杂度。

以树为例,二叉搜索树、AVL 树、红黑树等,每种树都有其特定的性质和用途。

其次,常见的算法也必须烂熟于心。

排序算法如冒泡排序、插入排序、快速排序、归并排序等,搜索算法如深度优先搜索、广度优先搜索,动态规划算法、贪心算法等。

拿动态规划来说,理解状态的定义和转移方程的推导是关键。

另外,数学知识在算法竞赛中也经常用到。

比如数论中的最大公约数、最小公倍数、质数判断,组合数学中的排列组合、容斥原理等。

二、大量的刷题练习“纸上得来终觉浅,绝知此事要躬行”,对于算法竞赛来说,刷题是提高能力的重要途径。

选择合适的刷题平台很重要。

例如 LeetCode、Codeforces 等,这些平台上有丰富的题目资源和活跃的竞赛社区。

在刷题的过程中,要注重题目的质量而不是数量。

每做完一道题,都要认真总结,思考这道题用到了哪些知识点和技巧,自己的解法是否是最优的,如果不是,最优解法是什么。

同时,要学会分类刷题。

按照题目类型,如数据结构类、算法类、数学类等进行分类,集中攻克某一类题目,能够更深入地理解和掌握相关知识和技巧。

三、良好的代码习惯在算法竞赛中,清晰、规范、高效的代码是取得好成绩的重要保障。

首先,变量和函数的命名要具有可读性。

避免使用过于简洁或者含义模糊的名字,让别人能够一眼看懂你的代码意图。

其次,代码的结构要清晰。

合理使用函数来划分模块,每个函数的功能要单一,这样便于代码的维护和调试。

再者,要注意代码的效率。

数学小天才小学数学竞赛成功经验分享

数学小天才小学数学竞赛成功经验分享

数学小天才小学数学竞赛成功经验分享数学竞赛对于小学生来说是一种很好的锻炼机会,同时也是检验自己数学能力的一种方式。

作为一名数学小天才,我在小学数学竞赛中取得了不错的成绩。

在这篇文章中,我将与大家分享我在数学竞赛中的成功经验。

首先,为了在数学竞赛中取得好成绩,首要的是掌握扎实的基础知识。

在平时的学习中,我注重数学基础的打好,不仅仅学习了课本上的知识,还去阅读了一些与数学相关的参考书籍,通过广泛的学习来拓宽自己的数学知识面。

我认为只有建立了牢固的基础,才能在竞赛中应对各种题型。

其次,解题方法和思维角度也是取得好成绩的重要因素。

在竞赛中,时间通常是有限的,因此解题速度和方法的选择非常重要。

我在备战竞赛时,注重练习各类数学题型,熟悉各种解题方法。

并且,我尝试用不同的思维角度来解题,这样能够从不同的角度理解题目,找到更快捷和巧妙的解题方法。

另外,合理安排备考时间也是非常重要的。

在备考期间,我会制定一个详细的备考计划,明确每天需要复习和练习的内容,并将时间分配合理。

我会将每天的学习时间分为若干个小段,保持每个小段时间的高效学习状态,避免长时间的学习疲劳。

在备考期间,我也注意合理休息,保持身心健康,这样才能在竞赛中发挥出最佳状态。

此外,参加模拟考试和集体讨论也是我备考中的重要环节。

通过参加模拟考试,我能够熟悉竞赛考试的形式和规则,感受真实的竞赛氛围,同时也能够检测自己的学习成果和不足之处。

在集体讨论中,我能够与同学们一起分享解题经验,学习他们的优点,互相促进提高。

最后,平常的积累和日常的学习习惯也是取得好成绩的保障。

在课堂上,我积极主动地参与互动,积极思考问题,积极讨论和解答问题。

在作业中,我不仅仅按时完成,还注重整理,并及时纠正错误。

在解题过程中,我会记录下容易出错的地方,并进行针对性的复习和巩固。

综上所述,要在数学竞赛中取得好成绩,除了掌握扎实的基础知识外,解题方法和思维角度的选择、合理安排备考时间、参加模拟考试和集体讨论,以及日常的学习习惯都是非常关键的。

编程竞赛解题经验

编程竞赛解题经验

编程竞赛解题经验近年来,编程竞赛在计算机领域中越来越受到关注。

参加编程竞赛不仅能够提升个人技能,还能锻炼团队合作和解决问题的能力。

然而,在这个激烈的竞争中取得好成绩并不容易。

在本文中,将分享一些编程竞赛解题的经验,希望对正在或即将参加这类竞赛的人们有所帮助。

1. 熟悉题目要求在编程竞赛中,题目要求是最重要的指导。

在开始解题之前,务必仔细阅读每个题目的要求和限制条件。

了解问题的背景和具体要求,有助于我们更好地制定解题方案。

此外,还应该关注一些隐藏的限制条件,例如时间和空间复杂度要求。

只有全面理解题目,才能确保解题的方向正确。

2. 设计合理的算法解题对于编程竞赛来说至关重要。

为了提高解题效率,我们需要设计出合理的算法。

在解题过程中,可以尝试多种算法,找到最优解。

对于不同的问题,也需要选择适合的数据结构和方法。

有时候,巧妙地运用一些特殊的数据结构或算法可以大大减少代码的复杂度,提高解题速度。

3. 提前预测边界情况在编程竞赛中,有时候会遇到一些特殊的边界情况,这些情况往往是关键点。

为了避免因为边界情况而出错,我们需要提前预测并考虑这些情况。

可以通过手工计算或编写一些辅助程序来验证自己实现的算法对于各种情况的适应性。

只有在实际环境中充分测试和验证,才能确保代码的正确性。

4. 合理利用已有资源编程竞赛中,除了自己解决问题外,还可以合理利用一些现成的资源。

比如,可以查阅相关的算法书籍、博客或论坛,了解一些经典的解题方法和技巧。

此外,还可以参考一些开源的程序和代码库,借鉴他人的优秀实现。

合理利用已有资源,能够节省解题的时间和精力。

5. 增加编程技巧在编程竞赛中,除了算法设计,编程技巧同样重要。

良好的编程习惯和熟练的语法使用能够帮助我们更快地实现解题思路。

例如,选择合适的变量名、注释代码以及模块化设计等。

通过不断的练习和学习,提升自己的编码能力,可以更好地应对竞赛中的问题。

6. 团队合作与分工如果是团队参加编程竞赛,团队合作和分工也是重要的因素。

陈国凯oi历程

陈国凯oi历程

陈国凯oi历程从此成了OI退役狗说实话,当时NOIP⽐赛前就想写这篇,结果⼀直没有⾜够的动⼒和时间写,现在⾼考完了,也有了时间,就写⼀点东西,记录⼀下我的OI 经历吧。

初⼊OI⾼⼀时,我是信息技术课代表(当然没啥⽤),每次课上做题基本都最快完成,⽼师看我闲的没事在那⾥琢磨C++语⾔,就给我介绍了⼀下信息学奥赛,但同时也告诉我这条路要有⾜够的耐⼼⽽且要牺牲⼤多数假期甚⾄部分⽂化课学习时间,当时家长对此也⽐较担⼼,但由于我的坚持,最终我还是开始踏⼊了OI这个坑,开始了⼀年有余的填坑之路。

结果由于学校忙着搞⼈事变动,没⼈管奥赛的事,直到⾼⼀暑假才真正开始集中的奥赛培训。

之前⼀直都是⾃⼰有空看看⼊门书的⼊门章节,其实收获并不算⼤。

暑假的奥赛培训第⼀节课是由LGA学长和SXY学姐带我们⼊门,当时学的还是Pascal。

由于之前我⾃⼰看过⼀段时间的swift,⽽swift在⾏尾并不需要分号,所以⼊门时不打分号这个事情困扰了我好久,还好后来慢慢适应过来了。

此外⼀开始的打字速度可以说是惨不忍睹,教练说打上⼏天代码就快了,也确实如此,⼏天之后,打字就由⼀指禅变成了⼆重奏。

毕竟实⽤的技能学的最快。

关于Pascal,有优点也有缺点。

优点呢,就是语法严谨,⼤部分错误在编译阶段就不会被忽略,甚⾄编译器提⽰基本就能解决⼤部分常见错误;此外有原⽣string类型,效率⽐STL string⾼了不少;尤其是Pascal代码易懂,接近伪代码。

缺点也有,⽐如代码确实⽐较繁琐,C++中的{}在Pascal中等价表述是begin end,⽐较⿇烦;此外for循环的条件限定过于死板,导致for和repeat、while⽆法完全等价的使⽤,⽽C++中的for循环则更为灵活,可以与while、do-while等价使⽤;另外Pascal缺少模板库的⽀持,⽽且OI中也不准使⽤除math库外的其他库⽂件,导致编码难度相对上升,⽽C++有完整的STL库⽀持,就连C也有qsort等常见函数可⽤。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

概述相对于其他学科竞赛,信息学竞赛发展比较初步,竞争要小一些——具体体现在:如果能把水题的分拿稳了就基本接近一等线了。

特别是在四川省,这种显现比较明显,一等奖分数线会比苏浙一带低上一大截。

所以“稳”是一个非常重要的要素,不少接触信息学一年甚至几个月就拿下一等奖的传说,大抵也是由于考试时有仔细、稳定的良好习惯。

所以就目前来讲,一等奖并不难拿,但并不只是单纯地强调智力和知识就可以得到,需要强大的心理承受能力(即“淡定”)、丰富的编程经验、考试技巧来作后盾。

另外,根据笔者的观察,信息学竞赛的考察近年来有从“知识”到“能力”的偏移趋势。

以往的题往往会考一些特定的知识点(比如动态规划、图论之类),一般可以由模板算法套用变形解决。

但是今年的题基本没有考这些——除了某些不能拿全分的数据可以用动态规划解决。

这些题的解法事后看来或许会很简单,而且编程难度并不复杂(一般也就100行左右,手速快点的同学最多15分钟就可以敲完,调试经验丰富的同学二十几分钟就可以调试通过),但是某些点会比较巧妙,如果考试时不静下心去思考的话很难想到,如果没有大量的做题经验的话也容易卡住,有时一个得自平时经验的简单优化就可以救起一个复杂度(包括时空复杂度和编程复杂度)极高的程序。

拿郭怡辰同学为例,来说明经验积累以及考场应变的重要性。

为了求一段连续区间的和,他使用了比较高级的“树状数组”数据结构,但实际上只需要一个简单的数组就可以解决(即令S[i]为前i个数的和,那么第i个数到第j个数的和就是S[j]-S[i-1])。

前者是专门处理数字会动态改变的数组的求和算法,而后者则是处理静态的数组求和算法。

而这个经验任何一本书都不会专门去讲(如果你找到了那真是幸运),但是在刷题的过程中(包括阅读标程的过程)可以很容易得到。

如果找到了正确的方法(性价比最高的方法),会在考场上省下大量的脑力和时间。

日常训练模拟赛首先要强调一点,【注意】,这也是笔者吃了很多亏的一点,那就是实战训练的重要性!七中本部的同学经常都做套题训练,即使是在他们知识结构尚不完整的阶段,而本校因为组织的问题(原本没啥组织,希望几代之后能建立完善的信息学竞赛组织),并没有强调套题训练的重要性。

因为套题训练可以给你直接的考场经验,而这些是非常重要的:1、做题策略:怎么在第一眼就看出哪一道题是最简单的,应该按照什么顺序去做?一道题该花多少时间思考、多少时间去实现、多少时间去调试?你的方法是否能在以上时间内完美实现?在考场上你能“hold住”多复杂的代码——你能写多少行程序并且很小概率出错?(笔者的这一数据在学习过程中从70上升到150)在思考了以上问题之后,你应该选择哪个分值作为目标,是100%,%70,甚至30%?(千万不要小看30%的点,30分绝对不是小数目,特别是在你能用一个极其“白痴”的算法在极短时间内拿到它的时候)等等……竞赛考的不仅仅是知识,更需要一个合理的临场抢分策略。

2、急中生智:在做一道题的时候卡住是很正常的时候,特别是在考试的紧张氛围之下。

很多时候事后回想,发现题目的标答方法并不复杂,甚至我们可能本已经触及到其边缘。

所以我们务必要锻炼自己在紧张情境下突破问题关键点的能力,而这种能力只有在考试环境下才能得到最好的锻炼。

笔者就有多次脑袋几乎想爆(有时甚至全身发麻),然后灵光一现抓住问题关键豁然开朗的经历——这种经历下获得的快乐是极大的,并且一旦想通这道题就没有任何难度,一旦做出来就是几十上百分的差距,同时也为你省下了大量的时间。

3、保持淡定:这属于考试心态的一部分,但往往极其关键——以上两点都可以说是建立在“淡定”的基础之上的。

考场上你敢不敢放弃100%的得分点而去“苟且”那50%?能不能在时间过去大半而你并没有得多少分的情况下仍然淡定地思考?能不能在剩余时间比较鸡肋(比如40分钟)时放弃,返回去检查?能不能在时间比较紧张时仍然细心地读程序查错,写5、6个测试数据、甚至写一个对拍程序?——以上策略曾多次为笔者挽回惨痛的分数。

淡定才能稳定,才能细心,切记切记。

4、深入探究:平常我们说“刷题”,但考试中的题绝对不是刷出来的。

即使你没有在第一时间抓到题目的要点,你几十分钟的思考过程也绝对让你深入地了解了这道题。

看了标答之后,收获绝对不小。

另外耐心地阅读标程是一个很好的习惯,因为这可以让你学习到某些经典的简化程序的方法,逐渐形成自己的程序风格。

(笔者当年写一个链表的操作时,达到了十几行的长度,但是学习了网上的经典程序,改用数组模拟的“伪链表”时,只用了3、4行)5、学习交流:笔者没有这个福分,但是希望本校以后的OIer们,能够组织比较正式的模拟竞赛,并且在考后通过“评讲”等方式加快学习效率,碰撞思想。

童鞋们也可以尝试自己出模拟题,这也是一种不错的学习方式。

考前特别需要认真对待模拟赛,务必按照完整的规范来进行。

一位学长说过:“考前至少要停一周的课来练套题找感觉。

”今年看到许多同学边做边评测,这是不可取的,无法提高面对考试环境的能力。

刷题作为一个OIer,一定的题海战术是必要的。

这些可以帮你把知识运用到实战当中,并且获得许多书本上学不到的思路。

OI与其他竞赛的一个很大不同在于它的思维与实践都是必不可少的部分。

如果一个算法你没有完美地快速实践过,那么千万不要拿到考场上去使用——光是调试都会花去你大量的时间,并且不能保证正确(参加省选的同学尤其注意,笔者在上面吃过亏)。

OI的解题思路和我们“文化课”的学习一样是可以总结、把握的。

笔者切身体验,做了很多题之后,能够很快速地想出许多同难度题目的解法。

也就是把握思路——注意,虽然信息学注重实践,虽然理论上有多种方法可以达到目的,但是思路仍然尤为重要。

找到正确的解法,可以省去大量的时间。

目标是NOIP提高组难度的同学千万不要歧视水题,水题其实是很好的。

1、可以提高信心。

2、水题有时候水只是因为它不是多个知识点的组合而已,其本身还是一个比较精妙的系统。

(笔者的动态规划就是靠大量的水题堆积起来的,tyvj上有很多动态规划的水题,代码短得可爱O(∩_∩)O~)3、水题要保证正确率有时还是不容易的,可以提高你的细心程度。

4、水题意味着更少的思考时间,你有更多的时间去打代码,可以获得流畅的码字体验,对提升手速很有帮助。

5、某些题之所以是水题,是因为它思路简单,但往往实践起来很麻烦。

(比如“模拟”、“搜索”中都有很多这类题,对于提高你的“代码控制力”很有帮助)目测NOIP提高组接近50%的题都可以被视作水题,所以水题一定要拿稳分。

如果把水题100%地hold住了,一等奖就有很大希望了。

推荐几个题库(可能大家都有知道)【荐】USACO 源自美国的信息学题库。

USACO Training 是一套循序渐进的题组,按照顺序刷就行了。

(第一组可以跳过,基本属于普及组难度的。

没记错的话刷完第四组提高组一等奖的能力就基本有了。

之上是省选、国家队难度。

)特点是比较系统、合理,测试数据完全开放(现在很难找到这种题库了),很多高手都刷过,有不少前辈遗留的经验可供参考。

另外推荐NOCOW网站(网站名得名自对USACO的吐槽= =)。

其中的USACO Trainging部分有中文翻译、各种解法、标程。

网站是开放式的,只要注册账号就可以进行编辑,如果你有更好的方法也可以贴上去。

这个网站还有一个部分是竞赛所需的“知识树”,其中包含了直到IOI所需要的大部分知识,讲解也通俗易懂,配有各种语言的前辈遗言。

【荐】tyvj()中学生自创的OJ平台,其前身是Vijos(已倒闭)。

特点是版面使用起来很顺手,相比于大学题库来说比较基础(刚发展时被称作“水库”,现在好了些),但是比较符合提高组难度,也在逐步地公开一些题目的测试数据。

其许多的题目是原创的,不定期会举行网上模拟赛。

(竞赛前会大量举行,笔者平时就是通过这个渠道取得实战训练的。

另外,也可以申请举办竞赛。

)一个缺点是网速不怎么好,人多的时候挤不进去,网速卡的时候挤不进去。

由于是非盈利性质,所以资金会比较困难,如果哪位童鞋零花钱比较宽裕可以考虑为他们捐点金银。

【荐】Pku题库北大的题库。

特点是题量海了去了,非常全面(要找什么类型的题可以直接百度之,一般都会有博客写解答或标程),想要冲刺省选以上难度的同学推荐。

但是99%的题是英文的(笔者甚至看到过一篇文辞优美的情书式的自创题目……),自备金山词霸或者有道词典取词翻译即可。

不过大学的题库都有一个比较致命的弱点(也可以说是优点),就是运行结果极其简略,只有AC,而没有AC几个点的说法,所以做起来会很郁闷,不知道程序改了之后是不是多对了几个点。

调试起来比较麻烦,但是比较锻炼人。

(注意,瞄准提高组的同学可以不必去碰里面的许多题,usaco+tyvj足矣)其他的还有rqnj(也是针对提高组的),信息学初级题库(没记错的话,有一个普及组的水题题库,徐老可以给普及组充电),各个大学的OJ(其中有一些口碑非常好的,不过笔者没有用过,各位可以自行查阅)。

最后再说一句:刷题要认真刷,善于总结,不要一味追求AC率。

看书记得有位前辈提醒过:“一定要花时间看书!”作为一个OIer,光刷题是不成的,应该吃透了书本中的许多精髓,然后用刷题来巩固与补充。

推荐的书:1、徐老那里有一本粉红色的书,详细地罗列与讲解了所有提高组需要的知识结构,详细看懂了是绝对必要的。

不过要注意之前强调过的信息学竞赛考察趋势,要理解算法,才能变通。

2、徐老的紫色题集:里面除了图论部分的题目,大部分专题是比较简单的(但不可小看,独立解决仍然会收获颇丰),可以作为一本“离线题库”使用,对于弥补大家的上机时间比较有帮助。

笔者曾经手写了其中许多题目的程序,然后再上机验证。

3、“黑书”——《算法艺术与信息学竞赛》。

这本书比较难懂(有人说是写给作者自己看的……),但确实是一本很好的书。

阅读此书你可以看到信息学当中极具艺术的一方面,其中某些精妙的思想非常美丽。

如果你有天赋能将此书融会贯通,那么估计你基本上就能虐IOI的题了……但需要注意其中大部分内容对于NOIP提高组帮助不大,省选以下不要花太多时间去研读。

(注:作者认为本书的一个目的提供一个“目录”。

读黑书的时候需要配合网络查找大量相关资料。

)4、黑书的配套教材(没有纸质版,会把pdf文件附上,建议大家打印全本……为了维护作者版权,请勿上传至网络)这本书比黑书实用很多,讲解了直到IOI 所需要的大部分知识,比较好懂。

缺点是有些图没印好,符号有些错位。

5、徐老那里有很多NOI导刊,每一期往往都会有几个专题,比较有实战价值,建议阅读。

6、其他许多网络上搜集的专题资料会附上。

一个需要注意的要点是:千万不要忽略“枚举、贪心、分治”等看似简单的“方法”。

确切地说,这些已经不是方法了,而是一种应该融入OIer内心的思维方式。

相关文档
最新文档