NOIP 2020 游记
本文最后更新于 天前,文中部分描述可能已经过时。
这是篇迟到了两周的游记,因为考完 NOIP 后我这个苦逼的文化课选手又去准备地理生物一模了,一模考完后的这个周末才开始肝这篇游记qwq
这是我人生中第一次参加 NOIP(去年的那个 CSP-S 不算的话),或许也将是最后一次或者倒数第二次(如果条件允许的话高三可能还会去打一场),
Day 0
晚上上完课回家已经快八点(文化课选手的痛),恰完饭也没啥心思写文化课作业了,拿出 iPad 随便看了看 OI-Wiki(不得不说这真是个好东西),复习了一些板子,然后签了一堆承诺书,打印准考证和健康码,之后大概十点多就去睡觉了
Day 1
考场继续在自己学校(爽)
NOIP 是早上 8:30 考到下午 13:00 一共 4.5 小时,我大概7点起床,吃完饭去便利店买了两块巧克力(虽然后来也没吃),七点四十左右到了学校
继续熟门熟路到了一楼角落的实验室,准备开台电脑暖暖手(雾),然而我来得太早了,又没带门禁卡,就只好在外面等着(冷死了)我还成功地把别的学校的选手带偏了,跟着我走了过来,特尴尬
过了一会儿终于来人了的,然而大家都以为别人会带门禁卡,所以就都没带…(太草了ww)这时候一个高一小朋友来了,他刷卡开了门,我们刚想跟他进去,结果他很快啊!砰地把门一甩,把我们锁外面了…
我们一群人在外面目瞪口呆,他大概是把我们当成别的学校的选手了,我们敲窗户他也不理…😂最后是大佬去校门口找教练拿了卡开的门
比赛前按理来说稍微看看模版,放松就行,然而我们机房的几个人一个在打线段树,还有几个人在现学快速幂…我也跟着背了下快速幂的板子(虽然最后压根没用上
时间差不多了就上楼进机房,监考竟然是劳技老师(一个月前劳技课学 Arduino,因为我没有用 Scratch 直接开了 IDE 写代码,然后劳技老师知道了我是搞信竞的,对我说了句“加油~”,好开心)
然后就是公布密码,解压试题,密码顺利一次输对~
拿到卷子把四道题都看了一眼,还是 T1 比较简单,打算至多一小时切掉
T1 思路是邻接表建图(或者用 vector),BFS 直接模拟即可,然而比较坑的是结果要用既约分数表示,我先花了半小时写了主要的代码,结果先用双精度浮点数存储,把样例输出的分数化成小数三个样例测下来都过了,接着开始写分数运算的部分
这时我突然发现涉及到我的知识盲区了,一个连小学生都会的数学问题我竟然不知道怎么做,那就是如何求两个数的最大公约数(GCD)?我只知道有欧几里得算法(也叫辗转相除法),但是具体应该怎么辗转相除我完全不清楚,我顿时傻眼了…
没办法,硬着头皮上了,我开始在草稿纸上举例子找规律,打开电脑上的计算器噼里啪啦地各种除,终于花了近半个小时找到了规律…
然后就是边计算边约分,结果化为既约分数输出,正当我以为万事大吉,一测发现样例3莫名其妙爆炸了,确切地说是程序直接异常退出(返回值非零)
我一看时间已经过去一个多小时了,T1 还没搞定,决定先放一放做后面的题
于是我看中了 T4 的前30分,直接暴力开搞,半小时后确认到手
接着我看了 T2 和 T3,T2 字符串没啥思路,也没太敢搞暴力,于是开了 T3
T3 貌似是 NOIP 史上第一道开启 Special Judge 的题目,给了校验器(我乍一看还以为重大事故造数据的标程忘记删了😂),允许多种答案,只要符合题意均可,我点开了答案校验器 checker.cpp
看了看,代码当然是都混淆了,可读性为零
读完题莫名感觉有点像汉诺塔问题,于是就默认它是一道动态规划(往年不都是考4道动归的嘛,今年四道只有 T3 最像了),然后我就开始尝试划分阶段和状态,推状态转移方程,结果浪费了一个小时啥也没推出来…决定 DFS 暴搜开搞,结果搜索写完发现程序自循环了,然后我突然意识到它会把移动过的球移回原位,结果当然会陷入死循环…然后我 DFS 也没思路了,此时距离比赛结束还有一个半小时
考虑到 T2 即使暴力写完撑死拿个30分,况且还没什么思路,不如去把 T1 debug 一下把分拿满
然后我花了近一小时才发现大样例会爆int,导致后面gcd出现问题,程序异常退出,遂给数组开了 long long,成功通过样例3
期间我到处注释掉代码看运行结果(没办法,不会gdb调试),这间接地导致我最后痛失30分
最后半小时就很尴尬,开 T2 应该是来不及了,于是打开 NOI Linux 虚拟机把代码都跑了一遍,仔细检查了 freopen
,检查了 printf
输出 long long
用的是 %lld
,检查了 return 0
,时间差不多就提交走人
考完出来才发现巧克力没吃,也没觉得饿,回家路上吃掉了,预估分数是100+0+0+30
回到家看到 Vuq 群里在讨论 T1,然后有人说 long long 存不下,要写高精度,我心里慌了,不过想想应该不会卡太多点,顶多被卡掉20分
接着群里有人说入度为0的点貌似不一定恰好为m个,应该取前m个作为入水口,我赶快调出题目仔细一看,还真是!如果 CCF 愿意的话我会被卡成0分,完蛋了,唯一一道会做的题也要爆零了(哭
好在群里有出题人,说帮忙问了,确认会保证测试数据满足入度为0的点的个数等于m,这样一来我应该只会被卡高精度,谢天谢地
接着 OITIKU 民间数据造好了(这家伙到底什么来头,每次数据都造得飞快),一测90+0+0+30,心里踏实一些了
Day 2
一早起来有洛谷数据了,测下了也是 120pts,但是其他人都好厉害,人均130,我垫底了
用 NOI Linux 跑了全省的代码,民间数据测下来我已经180名开外了,心凉了
2020.12.8
万万没想到 CCF 效率如此之高,没过几天就出分了,这天下午社团活动碰上教练,教练说出分了你知道吗,然后把手机给我看,我一看心里瞬间拔凉拔凉的,挂分挂到只有90pts,真的是垫底
一看 T1 60pts,我 TM 花了那么久过的大样例都白做了,LCM 要先除后乘才能拿90pts,我这时才想起来我一开始是先除后乘的啊,后来调试的时候把这里注释掉了,重写想着没区别就写了先乘后除,然后分子就爆了 long long
大佬在边上安慰我说“唉,大家都挂分了,这数据区分度就离谱”
CCF 不愧是“用心造数据,脚造大样例”,居心叵测啊…
后面几天真的是难过,后悔死了,如果当时我开了 T2 写出了暴力可以拿48pts,加起来就有120pts了
2020.12.15
出分数线了,上海因为低于全国基准线,二等线由95pts降分至60pts,成功地让我挤了进去
然后120+才有一等,所以我们学校一堆的二等,一等就3个人,其中两个都是高三的,这区分度就离谱
不正经的总结
欸 我一输密码他啪一下就解压了 很快啊 然后上来就是 一个DAG 一个字符串 一个走路人 我全部打出来了啊
打出来以后自然是 传统题目以long long为止 unsigned long long放在他鼻子上 没打他 我笑一下 准备收拳
因为这时间 按照传统功夫的longlong为止 我就过了 如果我这T2 HASH一开 一下就把他题目做出来了 放在这题目上没卡常
他也承认 我先这道简单题 他不知道我T2 O(Tnlogn)放在他鼻子上 他承认我先打了T1啊
我测完样例的时间不打了 他突然袭击高精度来打我脸
啊 我大意了啊 没有闪
欸 他的高精度给我T1 给我T1蹭了一下 但没关系啊 他也说 他结束也说了
考完试以后 当时流眼泪了捂着眼 我说退役
然后两分钟以后 两分多钟以后 就发现T2也挂了
我说出题人你不讲武德你不懂
他说对不起对不起 我不懂规矩 啊 我是 他说他是乱出的 他可不是乱出的啊 高精度 字符串 构造题 训练有素 后来他说他出过三四年题啊
看来是有备而来 这两个出题人
不讲武德
来 骗
来 偷袭
我要退役的 老同志
这好吗 这不好
我劝 这位 出题人 耗子尾汁 好好反思 不要再犯这样的聪明 小聪明 啊 额 OI要以longlong为贵 要讲武德 不要搞 高精度 谢谢朋友们
——Parabola的回答 - 知乎《如何评价NOIP2020?》
正经的总结
不管怎么说今年的 OI 系列赛事都结束了,难过也好,后悔也好,都是过去的事情了,应该说我高中阶段的 OI 生涯也就到此为止了,换句话说,我退役了
明年或许还会来打最后一场,但是不会花太多精力在 OI 上了,要准备明年5月的地理生物高考,终于要告别短暂的 OI 生涯,回归正轨了
我永远不会忘记一年多以来,每周一的晚上在机房上课刷题的时光,每次打完比赛凑在教练的笔记本前紧张又期待地等候着测评结果,一次次模拟赛中我从一开始的爆零,再到有分,最后到拿到100+,以及一楼小角落里的实验室,那属于 OIer 们的小天地
也很感谢教练把我从啥也不懂的白痴教到了啥都会一点点的白痴,据我所知别的学校信竞都是不收初中没有参加过的新手的,真的很感谢教练每周都无偿给我们上课,和我们聊天,给我们建议
一年来也捞到了两个奖,在 NOI 官网上留了名,在 OIerDB 中留下了记录,成为了真正的 OIer
OI 在目前的教育环境、升学政策下愈发显得卑微和无用,信息学竞赛的发展正走在下坡路上,它已经失去了曾经的繁荣,但是,抛开那些功利的不谈,OI 真的能给一个人带来很多,如思维方式的培养、问题解决能力的培养等等,这些都是受益终身的能力
正如我一直坚持认为的那样,搞 OI 真的只是因为我真真切切地热爱它,仅此而已,我不指望它能对于我的高考升学带来什么实质性的帮助
一片树林里分出两条路,而我选了人迹更少的一条,因此走出了这迥异的旅途。
与所有的 OIer 们共勉
评论