2015暑假训练总结

前言

暑假集训开始之前我并不闲着,为了可能即将到来的专题训练,我恶补了树分治,出了道题,还利用树分的恶心代码量好好练了练c++语法(刚转c++就搞这种东西也是醉了)。学习树分的同时还补了补各种树的相关性质,比如重心直径什么的,认为这些东西都能在脑子里过了(注意:这是个flag)。然后还看了看今年NOI的题目,着实被Day1前两题吓到了,Day2第二题让我好好复习了一下SA,但看见第一题的早已忘光的k-哈夫曼树就直接跳过,心里想着以后随便找某一天复习一下,反正应该不常考,考了我也大概能推出来(注意:这是个flag)。


第一周

08-02

原以为第一天的比赛不会那么难,然后看了看题目好像第一题是裸的 Tarjan 。然后打出来,也没打对拍,自信估分100。比赛结果出来后,真的是天真的只有我们,令t1爆零要怪谁。后来才发现这题的细节特别恶心,对割点的定义也各执一词,这种罗生门让我不知如何是好,自己用自己的理解也想不出来。然后第一题直到现在还没改出来QAQ。还有就是第二题其实不难,就是利用树的直径相关性质恶搞一下,这让自以为掌握了直径的我自打脸(啪啪啪),自己立下的flag就这样没了。
在DFS树方面有概念和算法上的不足,应该找找相关资料补补,在这里Mark一下。
从第二题能看出我的知识掌握不牢固,只懂概念,缺乏运用。

08-03

没什么好讲的,两道数据结构优化 dp ,主要考察 dp 方程的灵活转换。

08-04

今天省赛组没有题目,和提高组同做一道题。
哈夫曼树专项练习外加一道高精度练手题。
我整个人都不好了。就差一道k-哈夫曼树,我就能够AK了。怎么办?我在草稿纸上推来推去,都推不出来TAT。这时我开始后悔我在看见NOI考察k-哈夫曼时没有去复习,于是乎这个自己立下的flag就挂了。
比赛完看见WerKeyTom_FTD(wzd)AK了(好像只用了两个钟 %%% )。然后我用特殊的技巧水到了430。往下看,原来有这么多人天真地以为k-哈夫曼就是直接搞合并果子。虽说这是讲过的知识,我们都忘得精光了。
其实我认为很多知识点,一定要自己亲自推出来才会记忆深刻。就好像zkw费用流,我自己推了推,现在虽然不能背模板,但是保证能随时推出来。所以听完讲或是学习完一个新知识,一定要仔细理理思路,不然很快又会忘记。

08-05

回归省赛组。第一题感觉思路就是有了,就是数据结构优化 dp ,只是有细节问题好好处理,然后我就莫名其妙地错了。比赛后数据结构从线段树改为单调队列,代码重打了一遍,然后就过了。第二题让我好好学习了一下极角序。原来叉积运用于 360 的极角序会出错啊!那就分 y 轴正负半轴排呗。第三题就是分类讨论和数据结构的鬼题。代码复杂度极高。不过我们WorldWide_D(xdl)和Samjia(gjx)两位大神居然开始与这题长达一周的AC长跑,最后成功得手,看来只要有恒心,没有什么事是做不出来的,不过对我这种蒟蒻而言,改好自己能比较快改完的题目,好好消化能消化的知识,不在一些鬼题上死磕,也许是更好地选择吧。

08-06

前三题大概都不难,细节多了点。第一题居然错在了c++语法上,将&&错打为&。这种错误是绝不应该出现的(样例能过也是醉了),不过这也是对拍可以查出来的,但我还是没养成对拍的好习惯,毕竟面对高中的题目,我每天通常只能想出一题,有时一题都想不到,这样我比赛很难有固定的模式。面对难题的比赛策略还有待总结。
最后一题感觉出得很有质量,考察思维灵活。听讲后手推了一下线段树维护函数系数的解法,收获很多,毕竟我享受了推算的过程。

08-07

这次比赛第一题在提高组题目里见过,怎么做已经不大记得了,但是我还是成功地推算出了做法(看来我数学还不是很弱啊)。最后一题基础题,裸的矩阵快速幂,代码不要手抖打错就行了。第二题比较巧妙,运用了字符排列的不变的规律,然后用 Trie 搞一搞。总的来说,本次比赛基础题如愿拿稳,第二题就看经验的提高了。

08-08

这场比赛居然爆零了!这是我的耻辱!!!
第一题不难,但是由于我c++没转好,对字符串和sort函数并不熟悉,然后一急之下打回了Pascal。Pascal的语法我已经记不清了,又耗了半天,然后我整场比赛的节奏就彻底乱套了。最后只剩下 40min 时间弄第三题,我没有思考完善就开始码了,结果最重要的细节是在考试完后不久才总结完的。
这场比赛看出了我比赛心态和时间安排上的不足,其实我遇到c++语法不熟悉的问题,应该马上转战第三题,至少匈牙利算法不涉及字符串等我不熟悉的语法,如果这样,我是有足够的时间想出这题的细节并AC的。但是我错误地选择死磕第一题,耽误了我宝贵的时间。这是比赛策略上极大的失误。
听讲时没有听太懂,找Samjia讲了讲,一时懂了,但是没有理思路,然后也忘掉了,就像上面某天总结所说,听讲了不整理思路,听的时候再怎么懂也没用。

真的是漫长的一周!


第二周

08-10

咋又爆零了。
第一题比赛时思维局限在式子的转化上了(之前数论题老是式子变来变去),于是无果。比赛时我几乎所有时间都抛给了第三题,苦苦思索,但是毫无结果。结果出来后,第一题令我大跌眼镜,其实,考虑题目给定式子的特殊性(通常数字越大,递推关系越简单,麻烦就越少),也是解决数论问题的好办法,学习了。第三题就是分块大法好 分块大法好 分块大法好(很重要说三遍)。这种大法还是第一次接触,学习了。

08-11

消化吸收,途中那些细节没有太多的记载。

08-12

提高组省赛组同做一道题(终于可以不爆零了)。
这套比赛我发挥还算正常,遗憾的是第一题居然没仔细想,然后连个状态都没有(不然就伪AK了)。第二题我以为我的类型范围处理得很好,结果没发现有个地方三个数连乘,我是乘完后再取模,但是其实没取模之前long long就挂了。这是我少见的爆类型错误,以后会严加防范。第三题我没有被题目绕晕,成功找对了模型,然后成功切掉了。
当时我第二题犯了一个严重的错误。就是我看着这题想起了之前做过的树形 dp 模板题“电子眼”。然后我想都没想就直接打了。后来才发现这两题有微妙的不同,并且导致了方法天差地别。还好我及时yy出了正确的 dp 方程,不然我这题就挂了。从这题,我认识到无论是多么眼熟的题,都要仔细多次审题,确认思路是否正确。千万不要厌烦手算样例,消耗这点时间总比在打完程序后,发现算法错误,耽误时间,甚至影响比赛节奏要划算。
我至今不知道我当时是怎么想的,居然直接丢掉第一题!可能是我看到第一题这种涉及到类似于“取一些数满足和为 x ”然后干嘛干嘛的 dp 就头痛,所以才没仔细想。但实际上,这题 dp 也不算太难,仔细想想是可以想出来的。

08-13

这场比赛一题都没想出来。
拿了两题的部分分,感觉比赛过程没什么好说的。
第一题其实我是直觉觉得是斜率优化,但是就是化不出式子。比赛后才发现,原来这题只有相邻两个状态会影响答案,然后我们恶搞一下就可以斜率优化了,不过这题也让我知道了斜率优化还可以有其他表现形式。反正要记住斜率大法好 斜率大法好 斜率大法好(很重要说三遍)。第二题这种划分区间,分治全集答案的算法,学习了。第三题感觉要靠点物理常识(嘻嘻有事为什么不问问对面物理组)。第四题可以用SA可以用AC自动机,SA方法貌似不难,比赛时居然没想到。赛后改题时想打AC自动机,现在还在学习中。

08-14

2103年的鬼题就是厉害!!!
比赛时一题都不会。最后一题能用可修改主席树做,并且可修改主席树怎么打,Samjia几天前才讲过,他博客上也有,讲得还挺详细(这里送福利,传送门:可修改主席树)。但是我没有及时学,居然拖下来了,其实学习这个东西并不需要很久。看来比赛用到的新算法或是数据结构一定要立刻消化。
考试结果出来,原来切一题能虐场。Samjia在后悔没有全程打最后一题。前两题卡常算法我就不多讲了,最后一题离线大法好 离线大法好 离线大法好(很重要说三遍)。还有就是关于修改操作的题,要善于观察每个数最多会被修改多少次,这样可能会成为解题的突破口。

08-15

还是一题都没想出来(都这个样子三天了,感觉自己好颓废啊)。
比赛完后,我才发现第一题其实就是小贪心。其实正解用到的思路十分显然,应该是我思维不够开拓,居然没想到。第二题是双向 dp ,很久没遇到这种题了,应该记住。第三题更是巧妙,记录最优解集合,我们发现它居然可以用交集来合并两个状态。
思路巧妙啊!!!

受虐的一周啊!!!


第三周

08-17

省赛组没有题目。老师找了一套题。
第一题一看, gcd(a,c)=1 ,不就是保证这两条等式用类似辗转相除的方法最终可以将方程化成未知数次数只有 1 的方程吗?不过模数 p 不一定为指数,得用拓展欧几里得,但是我不会。于是我决定使用欧拉定理

gcd(a,p)=1,aφ(p)1(mod p)
来求逆元。第二题一眼的离线算法,用倍增维护时间戳即可。第二题出数据程序花了我整整10分钟,要么打错,要么难以构造好的数据(很多数据都是输出 “NO”),但最终也是拍出了一个错误。第三题是后来才定好的,初略看了看没什么思路,时间也不多了,就去打第一题了。
比赛结果出来,还算满意,第二题如愿AC。第一题莫名WA,不过我的方法貌似会TLE,然后就恶补了一下拓展欧几里得算法(这里送福利,我写的学习小结,个人认为挺详细的,传送门: 拓展欧几里得算法)。其实会了这个算法,剩下来的东西就很好解决了。
其实拓展欧几里得算法我之前是学过的,也手推过,但是还是忘了个精光。看来 知识的牢固掌握,不但要自己彻底明白,还要经常通过做题等方法复习
今天我终于能使用一次对拍,而且还拍出了错误,感觉爽爽哒。以后有时间一定要打对拍(当然还是先想出疑似能过的算法再说)。

08-18

今天做省赛组。终于不垫底了!!!
拿到题。第一题弄得我yy了半天的三维切比雪夫距离,然后发现并没有什么卵用。第二题毫无头绪。第三题感觉就是利用数字越大答案越少,搞些搜索。第四题,我看了之后很有感觉,不就是HASH搞模式匹配吗?弃坑第一题后果断完善了这题的思路。
花了 1h ,第四题终于调试出来了。我还构造了一些”十分特别“的特殊小数据来验证我程序的正确性。这时,其它题目连搜索的时间都没有了。我默默地交了第四题。怎么这么快就变成了Submitted,好紧张啊,不可能跑那么快啊,难道是空间爆了,但是我是压过空间的,还特地计算过,应该没问题。
结果出来,我如愿AC。虽然由于其它题目没有状态,导致分数不高,但命中率还是挺高的嘛。如果我能更加合理分配时间,也许我能腾出时间打出前三题搜索,这样更好。

08-19

这绝对是鬼题。
第一题准初三蒟蒻表示高中化学不会。同分异构体什么鬼QAQ。
第二题想了个错误思路,然后就不知道怎么办了。
第三题题意都错了,而且我也是毫无头绪。
弱弱交了第二题裸单调队列的部分分。
第一题 dp 统计,将重心作为根,具体细节没有太多的记载,大神们也没有讨论出来。
第二题分治或是树状数组套单调队列,思路明白了,还没改。感觉这种数据结构套数据结构,除了树状数组套主席树,还是第一次见,学习了。
第三题又是数据结构套数据结构,题解貌似有点问题,还要想想。

08-20

在屏幕前弱弱地打着总结。

长达三周的暑假训练就这样结束了,有些不舍


最后说点啥

集训时收获小结

虽然说在上面总结了很多东西。但是还是太乱了。我要梳理一下。

  • 做题从有感觉的那题开始,当然还要考虑到代码字节长度,编程复杂度,调试复杂度,等等。
  • 对拍一定要打,不能省,保住应得的分。
  • 离线大法好,分块大法好,斜率大法好。
  • 仔细检查思路,验证过程不能嫌麻烦。
  • 学来的思路一定要亲自推算,不要什么都直接拿来用。还有就是要常复习。

特别拿出来讲的问题

我认为这次训练的难度是提升了很大一个层次,以往的训练,我一场比赛能想出那么个一两题,而这次训练,我通常是一题都不会。这导致我这些天来情绪有些低落,比赛时,如果一道题都没有想出来,就很容易感到压力和失落,然后感觉自己十分颓废,感觉全部上搜索会被狠狠地鄙视,就只上一两题,有时倔强甚至一题都不上。
比赛完总是WorldWide_D,Samjia或是WerKeyTom_FTD成功AC某题或是想到了没对,我和ZLTJohn默默上暴力。即使他们由于各种原因想到了没对,被我水的搜索虐了总分,我也会感到很大的压力。我总是对自己讲,没想出来,和想出来没打出来是不一样的,然后满心的愧疚感。下一场比赛稍有不如意就会想到他们可能又会切掉某题某题,然后让我压力暴增,加重思路的杂乱。并且心情不好,加上毫无头绪甚至会导致走神,然后就再次垫底。
尽管在GDKOI2015时,我们就和Samjia讨论过心态问题,比赛时不要想过去,不要想别人,要完全沉静在自己的比赛中。各位老师和神犇也是这样讲的。但是要完完全全做到这样子,对我而言还是一个很艰难的挑战。毕竟稍微有一点功利心,不想被周围人遗忘(尤其是现在要打入高中的圈子),就极有可能走入类似攀比的误区。
有时想想,我自己搞OI是出于热爱,为什么会有这么功利的想法,我也会羞愧不已。怎么说,在当今社会,理想都是复杂的,可能会有很多附属品,重要的是看我们如何看待吧。
心态上的问题能导致比赛的一切失策,是最致命的,也是最难克服的。老师在最后一天总结时强调,要我们分清每天的训练,上午训练的是什么,下午训练的是什么。上午比赛,训练比赛技巧,拿分多者,才是真正的胜者。下午改题,训练的是知识的掌握和代码的能力,能力强者,勤奋者,才是真正的赢家。我感觉他说的特别好,这是我应该努力训练的方向,应该认真弄清楚的问题。我可能会认为打暴力是耻辱,但是如pwecar神所说,也许爆零才是真正的耻辱。
我知道正确心态,可能是需要大量时间来培养的。但我相信自己有足够的能力,在接下来的训练里,克服这个问题。

对暑假集训时机房某些现象的不满

现象1:最近兴起的十分浮夸的转C++风气

不妨请大家先思考两个问题:为什么老师让我们初学时使用Pascal?为什么你要转C++?
如果Pascal真的一无是处,为什么我们初学时要学习?
最近在机房总是能听到这样的声音,”C++跑得快,你水过,我也要转C++!“。既然你打的是正解,为什么非要计较那么个AC不AC,你是为了增加AC Problems的统计才去做题的吗?你是为了刷Ranklist才做题的吗?作为一名OIer,我们应该享受做题的过程,我们感受的是算法的艺术,是思维飞速碰撞快乐,而不是享受编程语言的便利,享受Rank上了的快感。
更让我感到恶心的是,有的人时而称赞C++的便利,时而唾弃C++某些方面的不易差错。甚至C++程序爆了个类型就在那里吵吵嚷嚷,好像那是语言的错似的。这明显就是自己的代码能力尚未成熟,就务虚,追求所谓”便捷“。
我在这里给大家科普一下:在信息界公认的定义里,C和C++语言是中高级语言,而Pascal是高级语言。大家可能觉得Pascal语法繁琐,那是因为Pascal有严谨的语法以及严格的语法检查,对于程序溢出有严格的限制(201错误,215错误,216错误等等),类型溢出亦是如此,这也是为什么Pascal成为了高级语言,适用于不能有一点误差的工程开发。而C++限制相对宽松,由于它不一样的类型存储办法,很多东西溢出是不会报错的(指针地址未初始化不会RE,数组爆了不会RE,类型爆了重置),这种灵活有利也有弊,能让C++开发更深层的东西,但使查错不易。
还有C++的STL库,相信很多人都是奔着它转C++的。但是,你们有没有想过,如果大家都不会快排,但都会sort,大家都不会红黑树,但都会multiset和set,大家都不会堆,但是都会heap或是priority queues。那我们切题还有意义吗?C++搞这些库,是为了让大家省一些代码量的,不是给大家没有学会该知识就用的。希望大家不要为了偷懒,越来越忘记程序的本质:算法和数据结构。
老师让我们学习Pascal先,是为了让我们熟悉,程序如何编写,才能有效避免各种运行时错误,各种WA(Pascal的严谨语法适宜让人产生正确的代码风格和实现技巧),是为了让我们先学习好各种基础算法和数据结构,为以后的提升打好扎实的基础。而让我们转C++,是为了让能力提升与代码不必要地繁琐的矛盾得以解决,并衔接以后可能的开发工作。毕竟初学Pascal时,我相信大家都知道,只是一种适于数值计算的编程语言。所以,我建议大家先将Pascal练习到一定程度再转C++。转语言是很快的事情,并且不适于在初期快速提升时进行,急于求成可能弊大于利。
最后给点链接:
一个noip吧关于Pascal,C与C++的讨(si)论(bi)贴:
http://tieba.baidu.com/p/1455759103?pid=17956171335&cid=27730334265#27730334265

现象2:机房里不知为何突然兴起的腐败风气

对于这个问题,我只能呵呵。
腐败不知包括玩游戏,还有抄标等等不良行为。
玩游戏我就不必多说了,相信大家已经屡见不鲜了。最让我反感的一次,是一群人在打游戏,中间一个人突然说了句:”你不要吵,我要改题了。“一时间打游戏的唏嘘一片,惊叹道:”哇,听起来很伟大的样子。“我当时都忍无可忍了,差点要站出来训斥了,真是什么脏话都上脑了。郑桦大神说得好,能走到今天这一步,一般都是热爱OI的了,如果只是为了玩,而少了热爱,或者是根本就不喜欢OI,那还不如退出,没必要强迫自己做自己不喜欢的事情。各位同学,请勿忘初心,因为热爱,你们应该快乐地努力,而不是无聊地消沉。
还有就是抄标,这样毫无意义。老师说的对,人要尊重事物的规律,一个人想在极短时间内进行巨大的改变,是几乎不可能的。不能急于求成,抄了标,也没人相信你会进步得如此之快。如果你只是为了面子的话,那迟早都会被他人看穿。

现象3:赛后改题不改正解

WerKeyTom_FTD在GDOI时有一句话说得好:“要学习ljj,打水法,不要学习ljj,只打水法不打正解”(ljj现在已经杜绝后者了,请拍掌)。比赛时,由于思维的碰撞,诞生出一种美妙的算法——水法,是很正常的。毕竟比赛是靠策略的嘛。但是比赛后,我发现最近有人老是不打正解,就是为了图个方便,懒得改回来。这种行为是不对的。再次用老师的话,比赛训练的是技巧,改题训练的是知识的掌握和代码的能力。比赛打水法没人责怪你(顶多说一下),赛后是不改,你有任何收获吗?下次在遇到类似的题你还会这么好彩吗?
我们省赛组的同学已经深谙此道。当初第一次遇到树链剖分(JZOJ“签到题”自己搜),Samjia率领我们用水法水过。水了之后,我们还是自觉学习了树剖,用正解切过了这题。从此我们掌握了树链剖分。后来第一次遇到点分治(JZOJ“幻想乡战略游戏”自己搜),还是Samjia率领我们水过这题。水了之后,我们还是自觉(高中那边也改了数据来催促)学习了点分,用正解切过了这题。从此我们学会了点分。两次水的经历,我们都通过自己的自觉学会了新知,这样何妨不比撂在一边好?

一些普遍疑惑的问题的解答&其它扯淡

问题1:如何打对拍?

首先你需要一个需要验证的程序,一个暴力程序,以及一个出数据程序(不要问我Pascal 和C++的随机数怎么打)。假设它们分别为program.exe,brute.exe和data.exe。然后你有两种方法

方法1

打程序,依次运行出数据程序,需要验证的程序和暴力程序,读入文件或使用cmd的diff或fc指令来判断输出文件是否相同,不相同时终止程序,使得输入文件为出错时的文件。
这个我只知道可以这样,具体怎么搞我不清楚。
貌似Pascal运行外部程序可以先uses dos然后exec(""),双引号里面是文件路径。C++运行外部程序可以system(""),双引号里面是文件路径。

方法2

还是用bat打的简洁方便。新建txt,编辑文件。

@echo off
:l
data.exe
brute.exe
program.exe
diff -q  brute.out program.out
if errorlevel 1 goto wa
echo Accepted
goto l
:wa
echo Wrong Answer
pause

简单解释一下,其实bat的语法是很简单的。goto语句类似于Pascal和C++的goto,后面跟着的是编号。执行goto 编号就会跳转到:编号这一句。
echo是将文本输出到窗口,@echo能够关闭回显,也就是不会显示执行该命令时的命令语句。然后diff就是判断两个文件是否不一样。pause是等待输入回车。
最后将文件名后缀改为.bat,双击运行即可。
你的bat会在程序输出一致时显示Accepted并一直循环。如果输出不一致,会显示Wrong Answr然后等待回车。这时的输入文件为出错时的文件。

问题2:证明斜率优化的正确性

就以GDSOI2015第二题《覆盖半径》为例吧。
通过一堆移项,我们能得到决策 x 比决策 y 优当且仅当:

gi,x2gi,y2+x2y2xy>2j

然后设这条式子为 calcx,y
我们维护一个决策单调队列 que ,使得 head<i<tail,calcquei1,quei>calcquei,quei+1
证明它的正确性,即证明:
设队尾两个决策从前到后分别为 j1,j2 ,待加入决策为 j3
calcj1,j2>calcj2,j3 时,决策 j2 不会更优。
calcj1,j22j 时,决策 j2 不比决策 j1 更优。
calcj1,j2<2j 时,因为 calcj1,j2>calcj2,j3 ,所以 calcj2,j3<2j ,故决策 j2 不比决策 j3 更优。
其他题目以此类推即可。

问题3:为什么C++不会爆数组溢出

在几乎任何一本C++教学书上都会讲,C++的数组是以指针来储存的。
数组a的实际意义是&a[0],也就是数组第一个元素的地址。所以a[i]会被解释为&(a[0]+i)也就是第一个元素的地址后移 i 个数组中数据类型(int等等)的地址。所以数组越界可能会访问下一个变量,甚至可能会访问未分配的内存,但不会报错。但数组越界是十分危险的,有的编译器会将程序中所有变量放在相邻地址,而有的不会,而未分配的内存可能会是该程序运行内存,其他应用程序运行内存,甚至是系统内存,这会导致程序崩溃甚至系统崩溃。所以C++的灵活会带来一定的弊端。

煽情感想

在最后一个晚上我们宿舍讲了很多(老师你听我解释)。
怎么说呢,初中三年过的真是快,转眼就初三了。虽然只是个逗号,但是我还是要总结一下这两年的OI经历。
我初识OI是在小学六年级快毕业的时候,那时我心血来潮想要学学编程。于是我找来了几位编程班的同学和老师,借了本教材。刚开始的热情从来没变过,每天啃Pascal语法,想当初,用一周时间完全理解嵌套if语句,我是多么的兴奋。后来遇到了递归和回溯,这是每个OI都要经历的第一个瓶颈,我们学校编程班当时就一个人会,然后我就死缠乱打,平时不懂就问他(当然我也会问问老师),居然将其啃下来了(我当初用整整一版A4纸模拟n皇后问题的回溯过程,现在想想也是醉了)。
后来就到纪中参加信息学夏令营。当初的我太幼稚,太轻狂,太自傲,由于有一段时间的自学,在初学阶段进度超越了很多同学,学习回溯时更是无压力,导致了我内心满满的优越感,可能有些看不起别人。这件事多亏了几位同学在后来的某天晚上跟我聊天时,指出了我当初的问题,让我潘然醒悟。在这里我想向当初可能无意间伤害了的人道个歉。毕竟人是在错误中不断地成长的,现在的我,对比当时,应该是成熟很多了。
然后后来与大部队(五六年级开始学的小犇们,如Samjia,WorldWide_D和ZLTJohn等)合并,渐渐开始被虐,我也老实很多了。
不久就到了NOIP2013,想不到初赛这么轻松就水过去了,复赛也拿了个一等,还算是比较顺利。WerKeyTom_FTD貌似初赛没过,伤心的故事。
然后就去水GDKOI2014,挂得一塌糊涂。WerKeyTom_FTD两场爆零,伤心的故事。从KOI开始,我就一路地不顺。接下来的市选就连水题都看错,无缘GDOI。当我知道自己去不了GDOI时,我真的控制不了自己的泪水。那天晚上,我在宿舍走廊大哭,毕竟从小学开始这么多次比赛,我都没落过伍,这次突然的挫折让我意识到我还没准备好接受以后路上的坎坷。
初一下学期时好像是我最颓废,最腐败的时候。那时我的搜狗浏览器应用栏上一堆什么Flappy Bird,什么2048,周六中午在机房玩。然后突然发生了龙大神事件,那天晚上的事真的让我感触很深,以至于我一下子就删光了浏览器上面所有的游戏,下决心继续努力。但是,我与大家的差距还是很大,压力也一直很大,毕竟当时WDC,WorldWide_D,Samjia等人真的是太神了,让我有种望尘莫及的感觉。那时的训练,我常常爆零,怎么努力好像都上不来,感觉遇到了瓶颈。
然后又是一年NOIP,不过这次是提高组。初赛还是轻松过,复赛刚好在期中考考完后,也刚好在学校校庆。接着我犯了超级2B的文件错误,愉快二等。
NOIP后的省赛训练更是让我越来越烦恼,越来越多的新知识,让我有些虚了。可能是数学功底没有他们那么好,很多知识WerKeyTom_FTD和Samjia等人一听就明白,而我算半天都不懂。有时求助他们,但都在改题没时间。但这也没办法,我真的不是伸手党,但我理解大家都有任务在身,没有时间。这时我会感到很无助,很孤独,会跑到机房走廊自己一个人默默看着晚霞流泪。但流泪又有什么用呢,赶快回到座位上继续死磕到底。有时WerKeyTom_FTD热心的出手相助,真的是让我感到无比的欣慰。
结果GDKOI2015还是不如意。我当时是真的无语了,NOIP2013,GDKOI2014,中山市选2014,NOIP2014,GDKOI2015,一个又一个噩梦,难道我是真的无法摆脱了吗?我一遍又一遍地问自己,你是真的有提高组的实力吗?不能放弃,跌倒了要再爬!我还是振作起来,这次水到了GDOI2015正选参赛资格,我不能再浪费了!
终于,在GDOI2015上,我看到了曙光。多场的失利,换来了这场的经验。让我成功打进GDSOI。我当时都已经换上休闲装准备第三天去旅游了,没想到居然进了第三天的比赛,整个人都怔住了。一同跟我水进去的,就是我们的情趣赛制作组成员,看来大家多次的心酸奋斗终于有了回报。(然而我们都被GDSOI虐飞了。
GDOI2015过后,卸下荣装,再续夜航。也许训练时,我会受虐成狂,但为了我热爱的OI忍受,然后当享受,那又何妨?
WerKeyTom_FTD和WorldWide_D还不是从腐败的坑中一次一次摸爬滚打站起来的?ZLTJohn也是颓到了谷底,决心奋斗,追赶前面的人。Samjia看起来一帆风顺,一路虐场,内心其实肯定也不乏压力,在我们看不见的角落烦恼。不仅是我们这些小蒟蒻,还有传奇的大神也有无比心酸的经历。WJM大神初中跪烂,hzwer(推荐大家上上他的blog,很多算法知识)等被班主任嘲讽“全省就几个省队我们班占6个”,我们学校的很多神犇初中时也是成绩平平。这样的故事数不胜数,正如《葡萄成熟时》所说,“谁都心酸过,哪个没有”。OI是条坎坷的路,但自己选择的路,跪着也要走完!!!
加油吧,一切都源于热爱!

几位大犇blog上暑假训练总结的链接

Samjia:
http://blog.csdn.net/samjia2000/article/details/47804453
WerKeyTom_FTD:
http://blog.csdn.net/WerKeyTom_FTD/article/details/47804249
WorldWide_D:
http://blog.csdn.net/WorldWide_D/article/details/47807695
大家都是扯淡高手啊,是在下输了。

你可能感兴趣的:(个人,杂文)