信息竞赛究竟算什么?

我认为,千万不要把信息竞赛理解成了学习计算机知识和学习C++编程语言,不要为了竞赛去看什么C++或者其他计算机技术的书。信息竞赛的本质就是应用数学。核心是数据结构与算法设计。数学能力对于信息竞赛至关重要。

信息竞赛该怎么学?

首先必须要跟着教练们的课程走,慢慢学习各种算法,比如高精度,动态规划,搜索,图论等等。必须明确的是,算法并不是代码,就其本意就是“解决一种问题的方法和流程”。这其中需要对每种算法和数据结构的理解,不仅仅是局限在算法的代码表现上,就是说不要仅仅是背代码,而应该深层次地思考算法是怎么,它的抽象模型是怎么来的,你能不能给别人讲出来这个算法是怎样的。这样对竞赛不会停留在纸面和代码上,而是心中构建起算法和数据结构的模型,使能够灵活运用。如果对算法模型理解不了,就要多问老师,在草稿纸上自己画一画,推导出算法,然后记住。不然的话,永远就是学一种题型,就做一种题型,遇到新的题型就不会做。

信息竞赛中可能会遇到的问题?

首先一个显然的问题就是做题,很可能半天做不了一道题,看到别人都做完了,自己还没有思路。这其实很正常,某吕晓钟学长在上竞赛的时候一上午也许就只能做一道题。但是只要是自己想出来,调出来的思路和代码,就会刻骨铭心地记住。这种情况下,建议和老师一起调试,或者请求同学帮助,千万不要直接看别人的代码。

第二个问题就是排行榜的问题,由于BSOJ有排行榜系统,会按照做题量排序,个人建议是不要在意这个排名系统,我们要的不是做题量而是做题的质量。

如何平衡竞赛与高考的关系?

首先要心理认同,选择竞赛,就选择了放弃假期。在平时上课时间周日晚上开始到周五下午放学,这段时间就不要管竞赛的事情,上课好好听,作业好好做。到了周末就要全心全意放在竞赛上,至于周末作业嘛,人逼起来的肯定是赶得完的。个人观点,高考竞赛严格区分,做这事的时候不要做另外一样事。但是可以在没事的时候想想算法。

可以把Word文档的课件打印出来,方便复习。

学习竞赛的进度表

这个倒没什么哪个时间该学到哪个水平,跟着竞赛教练走,这个不会有多大问题。

到底该追求什么结果?

首先最理想的情况是进入省队,在NOI中得到清华北大(或其他学校)的报送或者降分。干到这一步,就按照降分的分数线操作吧。

其次是拿到省一,并且拿到北大清华(或者其他学校)的夏令营或者自主招生资格。其中,夏令营入选的希望非常大,这就需要在夏令营里面好好表现,拿到优秀营员了。然后参加自主招生,拿到降分资格。

然后是没拿到降分,凭裸分考入这些大学。这样凭借竞赛基础,对计算机专业帮助非常大,C语言、C++、数据结构和算法基本都是学过的,成功当上大佬。

总的来说,如果感觉自己并不是非常不适合学信息竞赛,那就坚持下去,能到哪步到哪步,不管怎样学信息竞赛的性价比都是非常大的。