写在国赛网络赛和集训第五天之时

2016/08/14

从10号开始参加ACM的集训,今天已经是第五天了,也是国赛的网络赛。个人的感受如同知乎上的某个回答,ACM最重要的优点是,让你见识到各路巨神,从此再也不会觉得自己很牛逼。是的,oj很公平,跑完测试样例,该AC的AC,该WA的WA,TLE的TLE,一套Codeforce下来每个人的水平一目了然。

回到学校集训前,我有一种不知哪来的舍我其谁的狂妄(已经称之为是自信了),以为凭着自己没学几个月的C++、算法、数据结构基础,就能日试万言,倚马可待,训练数月便可轻松斩获一块区域赛的牌子。当然被现实狠狠地打脸,即使看成绩并不强大的我校集训队,大四研一的学长们经验丰富,同届大一升入大二的信科同学,大多在高中里有不错的NOIP经验,像我这样连数据结构都没学完,没有半点计算机竞赛经验的,属于垫底的菜鸟。学长报出一些常见的算法的名称,我却大多闻所未闻;查阅被奉为经典的刘汝佳的《算法竞赛入门基础》和《训练指南》,同样不知所云;学长们的讨论,也是无从置喙。而那些与数学密切相关的图论、数论、概率论、博弈论等等内容,专业课也还未涉及。大概从上大学开始再也没有过这样垫底的感受吧,难免忿恨于自己的无能。

下蛮力抱着刘汝佳的两本书死钻两天后毫无成效后,终于意识到并且敢于承认,这并不是想象中可以速成的竞赛,今年举办的相关竞赛(国赛、区域赛等)都不可能赶得上,我要做的是稳扎稳打,夯实基础后再提高解题能力,而不是相反。当把时间放宽到明年今日时,那么图论、数论、概率论等内容便可以等专业课结束后再去涉及,而不必在计算机方面的内容还未精熟时就抽出大量精力猛攻这些方面。我问自己来参加集训和竞赛的目的,最初当然是想混个牌子为将来申请用,然而在集训前就已经知道,在丰富简历的意义上,ACM的性价比很低,能够借着集训和竞赛的机会,提高自己的算法水平,交一些计算机方面的朋友,才应该是追求的目标。至于最后的结果,那应该是水到渠成而不是刻意追求的。

仔细想想,其实目前这种处于追赶者的位置(垫底的委婉说法),正是提高自己的最好时机。上大学前就担心,凭借自己不算太差的脑袋,在数学学院混个说得过去的分数和排位应当不是难事,即使知道自己要干什么,在没有peer pressure的情况下,往往也就仅限于雄心壮志了。见贤思齐,对我来说,也许是提高自己最好的办法。在学生时代一度处于垫底状态,总比离开学校后才意识到自己的狂妄与无能要好。至于能否赶上我倒并不担心,看了看ACM的知识框架,大概六七个大块的内容,学完基础知识后便是不断地做题丰富见识,提高熟练度,而最后的竞赛甚至将来的面试,往往也是以题目的形式出现。在高三之前,我一度认为这种刷题考试是自己绝对的弱项,逊于大多数同学。前年的这时候刚入高三,也许情况更为糟糕,锁在教室柜子里的课本和笔记全部丢失,自己与周围同学的差距远大于此时,然而在众人的帮助下,大概四五个月的时间就实现了以前不敢想象的目标。回顾那一年,最大的感受就是,不再觉得曾经被奉为天神的同学在成绩方面是不可战胜的。这句话也适用于当下。没错,ACM到后期是一门智商的竞赛,对于诸如清华world final队,我当然自愧不如,但是个人以为,在区域赛银牌及以前,主要考察的还是练习的广度和熟练程度的问题,更何况,以目前我所能接触到的大多数人,不会对我产生智商碾压的优势,又有什么好妄自菲薄的呢。多花一点时间,补上基础,加强练习,总会有所进步。假以时日,应当会有所收获。当然,补基础的阶段要沉住气,良好的算法和数据结构基础决定在ACM乃至将来工作中能走多远,错过几场CodeForce、一开始少做几个题都不是问题。(写到这里,一个有穷的知识点集合,有足量的题目作为训练样本,是不是可以写个神经网络来训练。。。)

有自己的目标,有一起奋斗的同学,有近乎无限的学习资料,这么好的环境,有什么理由唉声叹气而不加努力呢?动手吧!

2016-08-14 于厦门软件园

附一张ACM的知识点列表,图片来源于网络: ACM

Post Directory