分享

saffah的OI回忆录(1-11)(高一上)

 海纳川369 2015-05-16
1

CTSC2015一战,可以说是耗尽了所有体力吧。带着病去了北京,带着病回到大连,又在家休息了一个星期,终于算是回到了正常的状态。

退役了,我愿把这两年半多的OI经历,细细地回忆一下。也不限于OI吧,算是什么都有的一个总结。

那么,开始吧。


2

大家好,我是来自大连市第二十四中学的于纪平。是的,我来自弱省辽宁。为什么叫弱省呢,因为在这里(大连市),一般人在上高中之前几乎完全不知道OI是个啥。没办法,大连市某部门貌似是封掉了义务教育阶段所有的竞赛活动。当时在初中的时候,也只是听说高中有数学物理竞赛之类,至于OI嘛……是个啥?

我听说OI的方式似乎也比较奇葩……?当时大概是初三的3月份,忘了为啥想去网上找个Linux系统玩玩,所以就去搜了搜都有什么Linux。搜到了一堆Ubuntu啥的很正常,然后不知为啥就冒出来了个NOI Linux,感觉有点意思,顺藤摸瓜就摸到了NOI的网站,发现了居然还有这样一个神奇的竞赛。

不过当时在忙着中考(以及改三国杀,这个后面再说),所以就没有再深究了。

当时班里也有几个人提前去学数学竞赛吧,我对此的想法就是:竞赛这些都是歪门邪道,好好学习也不难,让他们走自己的路去吧。


3

那年9月份我来到了大连市最好的高中——大连市第二十四中学。

那年刚开学的时候,我过着正常高中生一样的生活,每天六点多一些起床上学,好好上课好好写作业。由于没有午睡的习惯,作业基本都能在放学前30分钟之前完成吧。然后晚上该吃饭吃饭,该看书看书,还能积累一些成语什么的,九点半准时睡觉。

每天9小时的优质睡眠,轻松完成各科作业,非常正常的高一生活嘛。


4

美好的生活从某一天开始就发生了一点变化。

大概是10月份开完运动会放完几天假以后的那一周或者下一周的样子吧,竞赛试讲开始了。试讲大概是这样一个东西,就是一周5天的时间,5科竞赛各分到了一天晚上的时间讲一些东西。

由于我有一点编程基础嘛,所以当时最初的想法就是,数学和信息学同步学,加上文化课的任务,大概能应付得过来吧。

数学竞赛的第一节课,似乎虐掉了一片人;OI的第一节课,似乎也虐掉了一片人。

然而试讲结束了以后,每科竞赛每周要上两次课,我喜闻乐见地发现了两科竞赛居然有一天冲突了,这迫使我要做一个决定了。

当时,我,班主任老师,两科竞赛老师,还有家长,一共做了好几小时的艰苦讨论,终于达成了一个暂时的解决方案,就是冲突的那一天,两科竞赛轮流去。


5

为了好好学竞赛,我退掉了所有的社团活动。作业由于还是能比较快地刷完,所以还是正常做的。

然而我得到了一个消息,就是我可以参加NOIP2012。所以那几天的课余时间,数学方面并没有什么进展,而OI方面,学长告诉了我tyvj这个网站,我就在上面刷题。感觉大概模拟一下很好写的,就写一下试试看,写不出来的就补语言基础。大概一两个星期就把Pascal语言基础补完了。

因为以前有编程基础,所以转语言还是比较快的。


6

那一个月里面,作业写完了剩下的所有时间就都拿来学OI了。

那大概是我最辉煌的一个月吧。一共刷了将近100道题目。(当然很水)简单的模拟以及字符串函数的简单应用就不说了。

我不知道为何就自己写出了深搜,莫名其妙地就写出了将近100行的“立体图”,还自己研究出来了一个O(n log n)空间的数据结构来做忠诚系列题目(后来才知道叫线段树),研究出了一个最短路算法(后来才知道叫做Bellman-Ford),最后的一个星期还学会了最简单的动态规划。

(忠诚2代码传送门:http://paste./11160402/)

然而我连时间和空间复杂度都不会算。时间的话就先乱写一个大模拟,跑数据跑不过再去想优化;空间就先把数组开出来,然后write一下它的size看看是否爆掉了空间限制。

就这样赤手空拳地去考NOIP,并且考完回来紧接着两天期中考试。

然而我还是只写作业不复习,剩下的时间搞OI,仍然是每天九点半就睡觉。


7

考NOIP之前我还去做了一场tyvj的模拟赛,貌似是tangjz出的吧。

第一题是裸的字符串处理,就那么过了。第二题是中国剩余定理,我写了个暴力。第三题是最短路,我写了个Bellman-Ford。然后貌似就混了一个rank 3?

可见我当时什么都不会,就要以这样的姿态面对NOIP了。


8

NOIP2012,大连海事大学。

第一题vigenere,看上去直接模拟就好了,这题做了大概有一个小时吧,大概推了半个小时公式,然后用了半个小时在想如何已知一个字符求它的编码。(应该是ord,然而我受到某语言的影响写了半天asc然后各种编译不过……)过了两个样例之后,就觉得问题不大了。

第二题国王游戏,正巧前几天我在tyvj上看到了加减法的版本,这个是乘除法,所以就果断按a*b排序。然而我并不会写高精度乘除法,所以就拿int64骗分了。

第三题开车旅行,我好不容易把题目看懂了,然后就写了个大模拟。然后随机生成几组数据发现大概能过70分的范围吧。没了。

Day1估分100+60+70=230。

似乎因为要考试所以也没有作业,所以下午接着看OI。


9

同余方程:自己推了半天啥也没推出来,写了个暴力交了上去。

借教室:一个大模拟。

我觉得“疫情控制”这道题最有亮点吧。首先我根本不会存树,所以我开了个数组记录每个点是否在树中,对于每一条边如果只有一个点在树中那么把在树中的点作为父亲,否则把编号小的作为父亲。然后对于每个节点我还要存下所有的孩子,然而我既不会邻接表又没有vector用,所以就开了个200叉树。贪心也是乱贪的,大概就是先走到根的孩子然后乱搞?具体怎么搞的我忘了,反正跑的非常快,对于最大数据可以非常快地出解。(当时连怎么给程序计时都不知道呀,所以就双击那个exe然后观察黑屏界面消失的速度,一切凭意识)

Day2估分60+30+30=120。第三题估30分是因为……大概感觉就能得30分吧。


10

接下来的期中考试,由于政治和历史的批卷不是很严格,这两科分别拿到了93和90分,给我送上了大量助攻,9科总分924,拿到了年级第6。

我去问竞赛老师,NOIP考了350分大概是什么水平,老师说大概是一等奖水平吧。

后来我也跟老师讲了这350具体是怎么组成的?大概就是上面那一套吧。

然后不知道为什么(似乎是看到OI好拿奖?)我就退出了数学竞赛,每周两三次上着信息学竞赛课,剩下的就是一个安心刷文化课刷作业刷考试的普通高中生了。

对,每天依然是九点半准时睡觉。


11

后来成绩出来了,果然是350分,只不过国王游戏少了10分,借教室多了10分。我也没去管是哪10分写挂了。

那年竞赛省一还有加10分和保送资格,高三的参赛不少。我全省排在第六,无视高三排在第二,再无视高二就排在第一了。

稳稳的一等奖到手了,生活还是平淡的生活。

下一个比赛是WC2013。在此之前还要准备期末考试,考完以后几天突击集训,然后就准备出发。

当然,这时学OI也是仅限课余时间吧。



高一上学期,就说到这里吧。

未完待续。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多