CSP 2022 游寄
10/26
晚上稍晚的时候我被通知,JS csp 第二轮取消了
心情就像被破了一盆冷水一样了。
十分让人沮丧的是,这是我人生中的第一次信息学大赛,我对它充满了期待。
10/27
上午第二节课下课,我们还在讨论 csp 取消的问题,但是第四节课上课的时候,我们班主任进来告诉我们中午回家,我们很庆幸,ccf 竟然 JS csp 二轮恢复了!
中午 1:23 坐高铁来南京。
3:20 到酒店,酒店大堂里有很多人,都是考 csp 的,我觉得大事不妙,几乎是没有初中生!
我们前面有很多很多人,原本是很快的,但是有一个人代排队,还有一个人插队,并且那个插队的人还是个领队,还帮 $8$ 个人排队,我不得不抱怨,中国人的素质确实还有待提高!
4:40 我们终于办好了!
回到房间泡了一碗泡面,邀请我同学到我这里来,现在我正在等他,后来听说他出去玩一直玩到 10:30,晚上还看了一场曼城的比赛。
10/28
早上做核酸见着同学了,玩了一整天。
晚上打 YACS,AK 了。
NJ 的饭确实很贵,作为一线城市,物价高是正常的,但是那么难吃就说不过去了。
10/29
比赛日。
上午pj。
没找到 xz 队,然后自己吃了早饭自己冒冒失失就去了。
结果找不着考场在哪里。
我妈下来了,找着了考场给我送进去了。
JS 的举办方确实很厉害,租了 $600$ 台笔记本电脑。
进去试机,感觉那个笔记本电脑的键盘有点奇特,不会打字了。
8:30 考试开始,我 8:25 就已经收到试卷了。
结果 8:45 还有人没收到卷子。
我问老师能不能开始写,老师收随你便,这个问题我不解答。
我就开始写了。
第一题好水,$2$ 分钟就切了,虽然没写快速幂,但是加特判了。
因为赛时突然想到一个 hack,所以就特判了一下等于一的情况:
1 1000000000
受键盘的影响,打字还是太慢,但是 $100$ 分到手了。
第二题看了不会,打了个 $O (n\sqrt n)$ 暴力溜了。
估了一下,大概只有 $60$ 分。
完了,以前的前两题我 $10$ 分钟就能切了,现在咋变成傻逼了呢?
喝了一点水,感到很不爽。
看第三题,感觉还行。
于是先写第四题。
看着数据范围写了个 dfs,想着 $50$ 分到手了。
再回头看第二题,感觉可以推导一下。
推了一会儿(大概 $10$ 分钟),算出一个很长的式子,感觉寄了。
我用了个一元二次方程求根公式,写开平方的时候用二分开的,怕浮点数精度差。
发现推出的式子不太对,但是突然发现那题可以二分。
$5$ 分钟就写好了,又 $100$ 分到手了。
$100+100+50=250$,感觉一等稳了。
还剩 $2$ 个半小时,专攻第三题。
写了个看着样子还不错的递归,没写判断短路,但是程序是对的。
这是我第一次,写超过50行的代码,没调就过了!(后面还有第二次)
加了个判断短路,但是好像写错了,因为我忽略了 &
的优先级比 |
高。
果然答案是错的,还有一小时。
我去上个厕所,回来再写。
回来以后改代码,过了前两个样例,第三个错了,第四个本地跑了 4s。
交到JS Linux上,果然第四个点超时了(JSOI linux 的效率极慢,运行超过 $30$ 秒就判为超时)。
感觉还能有 $30$ 分。
没事了,一等奖稳了。
后面的时间一直在乱搞。
第四题我突然想到一种 $60$ 分做法。于是我改了代码,结果,就这一次更改,整个青春都被毁了。
写完了,调了 $20$ 分钟,过了所有的样例,交上去也没事。
感觉这把真的稳了,后面的时间都在搞对拍。
最后发现第四题忘写 freopen 了,还有 $15$ 分钟,加上也来得及。
我加上了,交了,一切正常。
感觉真的 pj 组好水,结果我大 yee 了。
中午出来,我给我妈说稳了,至少比线高 $50$。
吃饭适合我朋友一起吃的,下午我的朋友们没一个人考,甚至我们学校就只有两个人去考。
试机环节略。。。。。。
还是早发了 $5$ 分钟卷子。
还是有人没收到卷子。。
第一题迪杰斯特拉跑 $n$ 遍,突然发现过不了,那不如写 floyd 了,既然都过不了。
floyd 用了 $1$ 分钟码好了。突然发现时间限制是 2s。散了,不管了。
直接 dfs 了,之间复杂度 $O(n^4)$,看来 floyd 比起 dfs 还是挺香的。
写完发现输出的答案是错的。
我发现我用的是 cout,我改成了 printf,结果就这一改,我第一题一分都没了(QwQ,具体原因一会儿解释)
后来我才发现:去过的景点不能重复去,写了个标记,溜了,发现能过样例。
交上去,感觉有 $70$ 了,剩下的题随便写写国一稳了。
T2 好水。。。
我不会正解,只能暴戾。。。。。。。。。。
$10$ 分钟写好了,感觉行了。
70+60=130,当时参照 2021 年的线,感觉国一稳了。
T3 看了一眼,懒得写。T4 看了一眼,也懒得写。
先去厕所玩会儿去,去了厕所,在里边呆了 $5$ 分钟(我“所长”的名号果然名不虚传)。
出来以后,ccf 看厕所的那人问我干啥了,在里边呆那么久。
我随便应付了几句,但是他还是放我走了。
第三题不论如何还得码。
用了个 stl 的 map,感觉放心了。
码完没调,感觉爽了,7级钩到手了。
发现 map 怎么调都调不好了,接过发现忘记 using namespace std;
了。。。。。。
然后又发现读题读错了,
ccf 写的是:敌人会摧毁某个据点,由于虫洞的主要技术集中在出口处,这会导致该据点的所有还未被摧毁的虫洞被一同摧毁。而从这个据点出发的虫洞则不会摧毁。
我理解的是:敌人会摧毁某个据点,由于虫洞的主要技术集中在入口处,这会导致该据点的所有还未被摧毁的虫洞被一同摧毁。而进入这个据点的虫洞则不会摧毁。
仔细看两句话,还是有细微区别的,但是我理解错了。
重新读题,写好了,样例过不了,发现是因为我tmd忘记判断 t==4
了,写好了,感觉有 $40$ 分到手了,$70+60+40=170$,妥妥的7级蓝钩到手了。
第四题原本写了个链表,我以为那只是一条链,后来发现不是,那是一张图。
写链表花了我 $30$ 分钟,意识到那是一张图又花了我 $20$ 分钟,只剩 $1$ 小时了,我 T4 还没写。
我瞄了一眼我左边的人,他咋只写了两题?
我又瞄了一眼我右边的人,他咋只写了一题?
请注意:考试瞄别人的电脑屏幕属于作弊行为,请不要做!
然后就炸裂了。
我以为他们写的都是正解,于是在心里暗地 %%% 起来了。
转眼,还剩 $55$ 分钟了。
看起来不好了,但是既然是图上问题就简单了,跑两边 floyd 最短路算法草草了事了,感觉会超时,果然,就连第三个样例都超时了。
没事,还有 $20$ 分保底,写了个 $k=1$ 的特判就溜了。
之后的时间里,都闲的没事干了,我检查我自己的 freopen 有没有加,加了,然后就躺平了。
一切的躺平都是摆烂的开始
我丝毫没有注意到,危险正在慢慢逼近,而是沉浸在我能拿了 $70+60+40+20=190$ 分的喜悦中了。
我又检查了一下 freopen,感觉这把稳了,甚至比上午 pj 还稳。
考试结束,我站起来的时候感觉有点吃力,应该是因为坐了一天没有活动的事吧。
我签了字,出考场给我妈说今年国一稳了,我当时已经把挂分情况考虑好了,不论是哪一题爆零,我都是有可能国一的,哪怕是有 $70$ 分的第一题。
高铁上我妈告诉我洛谷上可以 pj 可以自测。
第一题过了,100分到手。
第二题没过,只拿了70.感觉危了。
第三题只拿了20,还能接受,有AC,有WA,有TLE,竟然还有RE。
第四题全部RE了,0分!
这不可能,我在JS Linux上还好好的呢!
我好不容易写的,你却让我输的那么彻底!
我自己已发现错误,奖励作废(原因:我对 vector 进行了 memset)
这样的话我 pj $190$ 分,无缘全国一等奖……
tg 组测试,只有第二题有数据,交了,拿到 $60$ 分,我的心情有所平复。
第一题有数据了,交了,我惊呆了!
0分!
我原本应该有 $70$ 的啊!
结果发现上面都开了 long long,但是唯独 printf() 语句写的是 %d,完蛋了,$0$分了。
但是还是有希望的,洛谷卡 long long,ccf 不一定卡。
不管了,先把 %d 改成 %lld,果然 $70$ 分了。
我问教练还有没有救,他说应该还能有 $30\sim 40$,我不信。
第四题也交了,不出所料 $20$ 分。
就等着第三题呢,结果一直没有出数据。
11:30,上床睡觉。
10/30
今天是我的生日!
晚上做梦梦见一堆 long long 围着我,把自己吓醒了,一看表,7:25 了,于是就起了,一想到第一题,就觉得自己有可能0分。
教练队友都为我感到可惜,我是我们大撷秀唯一一个有可能冲击 csp-s 一等的人,另一个参加 csp-s 的人是初三的(比我还蒟蒻)。
哪怕我第一题真的爆零了,还有 $60+40+20=120$ 分呢!(起码也是国二吧(这个起码起的有点高了))
感觉还好吧,自己宽慰自己了。
谢谢朋友们。
等到出分数的时候我把分数写到下面这个剪切版里:
先看的自己点开看吧:蒟蒻xxzxsyl的csp
我生涯第一场大赛就在大意中失了荆州,非常的遗憾,希望以后多有点比赛经验,注意一下!
出分了,详情请私信咨询我,或者看剪切板,或者看下一篇博客。
过几天可以在 OIerdb 上查我的真实姓名(查 syl 就可以了)。