zoukankan      html  css  js  c++  java
  • OI 2020 -> 2021

    CSP 前的 OI 经历

    2020.6.29,EdisonBa 考上推荐生,入坑 OI ,零基础学习 C++ 语言和竞赛算法,一直学到暑假,之后在暑假上了清北学堂提高组储备营,学了一些基础算法,但是掌握的都不是很扎实(或者说基本没有听懂)。

    2020.9.1,开学了,每天的奥赛时间由暑假时的大半天缩成了一个半小时,这对于学习新算法有一些难度,更何况我在暑假时学的算法都掌握的不是很扎实。刚开学时我还没有什么目标,目光仅仅局限于 luogu 的刷题量,每天的奥赛时间便都在刷一些没有针对于某算法的题目,就这样,我浑浑噩噩地过去了一个月,换来的是 luogu 的刷题量,同时也丢失了宝贵的学习时间。

    2020.10,距离 CSP-S 二轮只有一个多月,我在暑假学的算法基本上全都忘干净了。我逐渐感到有压力,意识到自己需要复习之前的算法。我便看了看往年的 CSP 和 NOIp 的题目,大多数都是以绿题起步,再反观我当时的刷题量,普及难度的题目刷了一大堆,但是对于提高难度的题目几乎没有接触过,这让我十分慌张。于是,我按着暑假上的清北学堂的回放,每天抽出一点时间来复习算法,并且尽量看看关于算法的题目。但是,时间真的是不够用,一天只有一个半小时,完全不够消化,清北学堂的一节课也需要四五天才能听完。再加上文化课的冲击,使我并不能专心致志地学奥赛。直到10月底,我才仅仅弄懂了图论(虽然后来听说 NOIp 很少考),入门了一点动态规划和二分,一个月就过去了……

    CSP 考前一周

    由于是第一次参加这种全国联赛,经验也很少。考前一周停文化课,我也尽量每天模拟一次考试的过程。在这期间,学长不建议我们再学习新东西,我便每天都模拟刷题,找节奏,这样经历了几天,感觉效果不错,自信满满。但是看着自己 luogu 的刷题量,绿题还是微乎其微,心中有一点小慌张。停课的时间过得很快,其中我受益很大。考前的最后一天,我把我已经学过的板子都打了一遍,争取RP++。

    CSP-S

    考试时间 4 小时。

    进入考场,便看看机子有没有一些硬件上的问题,然后开始建文件夹,调 Dev-C++,打快读快写和一些 模板。在这个时候我旁边有一位巨神问我怎么建文件夹,我没有理会他,之后就看到他一直在睡觉和玩电脑。不久之后,我才发现有个压缩包。后来监考员公布了密码,但是这个压缩包的密码究极奇怪,解压的时候顺便清醒了一下脑子。看着考试马上就开始了,我不由得紧张了起来。

    看到了试题,我先浏览了一下卷子,发现难度貌似是从低到高,便没有过于详细得看题目和数据范围(我在这里吃大亏了),便打算顺着题目顺序做。

    T1 儒略日 ,一道大模拟,其实我刚看到这道题的时候非常开心,因为第一题模拟,我这次比赛起码肯定不会爆零了。我便直接开了 T1,但是我此时还没有意识到事情的严重性。我便开始拿起笔,在草稿纸上面列代码大纲,渐渐地,我沉迷于 julian 当中,等我列完大纲加上把暴力打上去,一个半小时过去了。因为我太菜了,打了 300 行的暴力。之后,我尝试着过一下大样例,结果跑了两分钟了还没有跑出来。我瞬间意识到这个题我可能会得到一个很低的分数。我便开始优化…… 转眼间,考试时间已经过去了两个半小时,但是此时大样例还是跑了十几秒。就这样,T1 码了四百多行,一看时间,还剩一个半小时。超级大危!我便赶紧去看 T2。

    T2 动物园 ,题目巨长,直接把我这种语文差的人送走了。半个小时过去了,我这个蒟蒻才刚刚看懂题目,发现需要用到位运算的一些东西。因为我太菜了,不会用位运算符求一个数的某一个二进制位,便开了 1e8 个 bool 暴力算每一个数的每一个二进制位(后来还被同宿舍的一个 巨神 嘲笑了一顿),因为我代码能力太差,打完暴力,考试时间只剩下了 20 分钟。

    T3 函数调用,这道题其实暴力非常好打。但是等我看了看题,考试只剩下 10 分钟了。此时监考员就开始疯狂“广播”,说是要抓紧保存文件,我便仍然尝试打这个题。当时时间很紧迫,我把非递归的暴力打出来了,然后看了看数据范围,发现必须要用递归写。我发现要想把我这个代码改成递归形式的需要很长时间。我便意识到这个题我爆〇了,这十分钟做了些无用功……

    最后,我检查了一下 T1,T2 的文件输入输出有没有写错,看了看文件夹有没有交上,变垂头丧气地离开了考场。

    第一次联赛,原地爆炸,出来考场之后我问了问同学们,果然有一批人沉迷于 T1 导致没做完题。但是这场比赛的 T3 ,T4 的暴力貌似很好打,能拿很多部分分。我在这里吃大亏,这些分直接扔了。那这次考试我确实是无了,只能坦然地接受现实,争取下次吸取这个教训。

    CSP 考后

    回到学校,发现 T1 可以打离线 day by day 的暴力,能拿很高的分数。鬼会想到这道题可以用离线?!我一上来就打了个 While(T--) 岂不是葬送了自己?

    这次考试,luogu 上给的评级是绿,绿,蓝,黑。确实我接触这些难度较高的题目比较少,考试之前,我对于这种联赛的 T4 有很大畏惧心理,因为它往年都是黑题,其实这个题只要看懂题目,就能拿 20 分的部分分,因为畏惧和没有控制好时间,一些没看这道题的人就直接被卡走了……

    考完这次试,我也发现一些算法我还是掌握的不是很扎实,而且我的代码能力太差了,光 T1 就浪费了太多时间。

    出来分数,T1 ,T2 各 40 分,NOIp 的考试资格有了,但是成绩太不理想了。在接下来的一个月里,我打算认认真真地把 dp 和二分搞懂,并且尽量提高自己的代码能力。最大的收获就是考试的时候要合理分配时间,先把能打的暴力都打了,先拿到最多的分数。不要贪于写正解。

    NOIp 前

    暂略

    NOIp

    早上考试,头脑不是很清醒。这次走错了考场,不过问题不大。和 CSP 一样,进入考场之后做一些常规操作,在打模板的时候,我旁边的各种巨神都已经打出来了各种树,我便意识到我还是很菜,当时连线段树都不会。此时我好像失去了斗志,便浑身无力地准备考试。

    考试前五分钟,监考员公布了试题密码。这次的密码很正常,是选手加油的拼音。看到试题后,我这次要吸取之前的教训,把四个题都认真地先看一遍,之后再决定开哪个题。首先是T1,图论?我疑惑了,不是说 NOIp 不考图论的嘛。仔细看了看,并画了画图,发现需要 拓扑排序 + gcd。我心想,一会就切 T1。之后我又去看了 T2,题目的大意我很快就理解了,但是我觉得代码实现起来有一定的难度。之后看 T3,发现这个题挺有趣的,是一个 SPJ,题目能看懂,我此时立刻想到了一个很不靠谱的方法。看了看时间,发现已经过去 50 分钟了,之后我又看了看 T4,发现是一个不可做的神仙题,我还没有看完题目,便回去直接开 T1。

    T1 排水系统,这道题只要会求拓扑序,之后会用 gcd 表示分数,就可以拿到 90 分。最后的十分需要高精,我在考场上也没有察觉到,当然我也不会写高精。可惜的是,我的代码中有一个过程忘记了开 long long,90 分变成了 60 分(悲)。这对于我来说是非常可惜的,毕竟 30 分决定了一个奖项。打完 T1 ,考试时间已经过去了两个小时,这还是反映了我的代码能力不是很强。我便抓紧去看 T2 。

    T2 字符串匹配,这道题的题面很简洁,但是我觉得代码实现起来很困难,因为各种神仙字符串算法我当时还没有学。我决定写个递归乱搞一下。结果我的递归连第一个样例都过不去,大概是循环节的判定有问题。我又继续无限得调,结果考试时间还剩一个小时,我的第二个样例也没有过去。这道题得分对我来说只能靠运气了。

    T3 移球游戏,这道题我想的是写一个随机算法,就是让球一直随便移动,直到符合条件为止。这个想法非常奇怪,等我成功地把这个程序打出来,就只剩下十分钟了。但是,我这个随机算法跑样例就运行了 400000+ 次,而且还超时了。那么说我交上去之后肯定是 0 分了。带着失落的心情,听到旁边监考员不停地催促保存好文件,我觉得我这次联赛我要无了。

    T4 微信步数,这道题我只交了个头文件上去。考试之前看题目的时候我没有仔细看这道题。万万没想到的是这道题输出 -1 竟然能有 5 分。这分我可直接就白白地扔掉了,是非常不值得的。

    走出考场,心灰意冷,和同学们交流了一下,发现许多人都考炸了,但是他们对于第一题都很有把握。我当时也觉得我 T1 肯定切了,心情还挺愉悦呢,后来听说 T4 要输出 -1,我一想我这不是扔了 5 分嘛。差距就在这一点一滴地形成。我瞬间感到天崩地裂,毕竟少拿了白送的分确实是非常可惜。

    这次题目比去年难很多,对于我当时的水平来说,只能 T1 和 T4 有可能拿到分。但是我都没有拿到应该能拿到的分数,反而在不可做的 T2 和 T3 上浪费了大量的时间。看来我的考试策略还是有大问题。但是考试的时候我认为 T2 和 T3 是可做的,但是没想到实际上没法搞……

    NOIp 后

    联赛考完了,该好好学 whk 了。通过这两次考试,我也看出我的基础知识还不牢固,一些算法我也没有学到。今后一年的时间,我应该系统地学习 OI 的算法以及数据结构。

    另外,今年 NOIp 的 T3 是一道 Special Judge,这是典型的 CF 类型的题。在校期间,我也和 好朋友 一起打过 CF ,我也就光切切 Div.2 的 T1,T2。之后就去刷别的题了。这位巨神总是坚持着打完一场比赛,而且赛后还经常思考题目。我觉得今后我需要多做一些 CF 的题,有空的时候也和同学们一起打打 CF 的比赛,多做做一些重思维的题。

    还有,我的代码能力也需要提升了。对于今年 CSP-S 的 T1,直接把我这种蒟蒻送走了。今后我也需要打一些大模拟,保证有足够强的代码能力。

    2021 年度规划

    1月,学完算法竞赛进阶指南的 0x00, 0x10, 0x20,位运算。
    2月,基本在寒假中。如果有条件就报清北学堂,主要学习基础数据结构。
    3月,数据结构进阶。
    4月,数据结构收尾,dp基础。
    5月,dp进阶,图论基础。
    6月,图论进阶,字符串算法。
    7月~8月暑假,有条件就清北学堂,可以偏重于数学和数据结构。
    9月之后,多打模拟赛,冲击 NOIp 2021。

    结束语

    转眼间,2020 就要过去了,马上就迎来的是新的一年。
    在这半年里,我经历了从零开始的 OI 之路,但是这条路如果不出意外,我还可以走一年。希望一年后的 NOIp,大家都能发挥出真正的实力。
    学习 OI 的过程,一定是一个难忘而具有意义的过程。在此,也希望退役高二学长们文化课顺利,高考取得优异成绩。

    奋斗吧!一年的路程不短,但是也不长。今后我要抓紧时间,争取 2021 NOIp RP++

    EdisonBa

    2021.1.3

  • 相关阅读:
    Python 文件的输入与输出
    php获取客户端真实ip
    php设计模式(3)-观察者模式
    php设计模式(2)-单例模式
    php设计模式(1)-工厂模式
    设计模式
    设计模式-观察者模式
    include和require的区别
    php分页类
    反向Ajax,第5部分:事件驱动的Web开发
  • 原文地址:https://www.cnblogs.com/EdisonBa/p/14103755.html
Copyright © 2011-2022 走看看