PKUSC 2023 游记、总结与反思

· · 生活·游记

upd 5/8 16:30:增加总结部分,修改润色

upd 5/18 21:37:喵喵喵

0 前言

又是一场比赛结束了。

在初三下学期的 OI 历程中,发生的所有事件都比以前的总和要多。可能一是疫情的原因,再来是以前自己的经验还不够丰富。

当然,这也是我的一场难得的一场发挥比较好的比赛。甚至还翻了盘。

所以在这篇文章里,我会简单的总结一下打的好的原因以及一些需要改进的地方,并可能给自己定点目标之类的。(说实话,在我的眼里,由于执行力不足,目标的作用可能更多的是心里安慰?不管了)

当然,还有喜闻乐见的游记,我们开始吧!

1 游记

只想吃瓜的建议只看这一大节,后面的是写给教练自己的。

Day 0

坐车到了珠海的机场,从这里开始,大家就分道扬镳了,一大批人跟着 symbol 飞向了南京,留下我们七个,还有教练和教练的女儿,前往北京。

常规的手续、安检,然后就上飞机。

不得不说南航的飞机比山航的好很多,座位比较宽敞,餐食也还可以,上个暑假从上海旅游回来刚好坐在了飞机引擎边上震得我腿都是麻的。

南京的出发时间比北京晚,但是大家几乎同一时间到的。

下飞机的第一印象是首都北京的强大,大兴机场很新,配置都是特别好的那种,再想想中山,对比就出来了。

(哦不对中山没有机场还对比不了)

然后就是坐车到酒店,跟 SmallTualatin 一起住一个房间,就是那种很普通的城市酒店,就在微软北京总部的对面,中关村里面。经典中关村不是村。

北京的空气有点干燥,但还是挺凉爽的。

PKUSC 是 Day 1 早上报道,所以晚上就出去一起吃了个围餐。和几个清华北大的学长一起讨论各种东西,等教练先行一步之后话题就更多了 最后甚至扯到了明日方舟哈哈哈

不过名字全忘了,只记得 dh。

Day 0 就差不多这样,没有什么刺激的,但是由于在北京,人又少,感觉各种资源和交流机会反而比南京的同学多了很多?

最后大家一起拍了一个合影。但是由于某些原因不好放上来,这里放另外一张图替代。

要不来猜一猜是什么导致的,属实是输入法暴露本性了。

Day 1

早上起的比较早,但是磨蹭了一阵子,导致吃完早饭后,携带的咖啡忘记加糖,有点不太好喝,不过我习惯了,但是拿铁不加糖感觉还是不太好喝。

然后就是进入北大校园,大小相当于 3.44 个纪中。有一点准备所以不是很惊讶。

报道,开营仪式,这些就不用多说了,但是真的很喜欢老师的讲话风格,富有意义,简短,有力。

然后测试机器,发现 1e8 的随机数生成要跑 700ms 但我不是很专业,所以可能测的很假。测试题目第一次见(去年发烧没有参加 OJ 测试),推了半天式子最后终于在试机结束之后搞了出来。

接下来直接去吃饭,根据昨天缴获的情报,大家没有管农园,直接跑去家园 2 楼吃饭。反正菜式就很多就对了,而且根据其他情报,北大的饭堂绝对可以碾压南外,也比纪中的好,但是基本上好像还是那些菜式?诸如烤鱼,干锅之类的纪中也有,但是北大的做的更好。

我没有意识到手上的卡是定值卡,以为可以充值,所以就花了不少钱,而且我完全没有意识到。

不管怎么样,吃完饭就回去,感觉地图不是很好用,就用了指南针,一开始莫名的有效,直到之后某一次东南东方向走的太南到了体育场之后还是换成了导航。

发现自己的机子没有充值,大家都在敲模板,我就写了个对拍模板,事实证明,在两天里,这个模板是废稿一份。

发现边上的同学是安师大的,难怪我说这么眼熟,而且属于是他认识我我不认识他的那种。我真的在联考很出戏吗?真的!

APIO 由于跟年级主任谈崩了,仍是未知数,但是如果我去了,如果看到一个疯子,不用怀疑,多半是 Alpha_Drawer

一点到,开题!

T1 感觉看上去像是签到题,就是两个串 A,B,分别把 A_i 都替换成 B_i,问操作后的 border,操作之间互不影响。

字符串?直接寄!

想到了一个很神秘的哈希做法,事后发现好像比较接近正解,最后还是决定求稳,写了一个 KMP,但是好久没有写了,所以还调了一阵子,拿了一些分数,具体多少我忘了,反正 Day1 的部分分特别抽象,都不是整数,好像是 40 多一点。

然后看 T2,期望题,狼人杀,但狼人不能杀,只有预言家随机选择连续区间查询,问期望天数确定狼人位置。想了一个 O(n^4) 的很难写的区间 DP 做法(后来发现是假的),最后没有写,但是当时脑子抽了,第一档部分分,n \leq 20 没有想到状压,最后没有拿分。

最后是 T3,概率题,一棵树,节点的有两个值,第一个由自己的概率决定是 0 还是 1,第二个值是儿子的第二个值和自己第一个值的众数,保证偶数个儿子。期望概率全部都凑全了。口胡了一个做法,结束之前没有写出来,写了一个暴力就跑了。

然后是反复切换,看看有没有部分分,最后还是没有拿到什么分。

出来发现被 ruizhangj 吊起来打,189 与 66 的差距,SmallTualatin 也拿了 100+,好像 T3 他写了一个 NTT 所以跑的飞快,喜提纪中第一,倒数的那种。

多项式 + DP + 期望概率 + 字符串,是我的绝对劣势区间没错了。

但是心情莫名其妙的不错?不知道为什么,可能没有办法去南京面基所以来北京摆烂了?

去未名湖看了一下,运气很好,有一只白鹭站在很靠近岸边的地方,有一堆人拍照。风景也很好。还有鸭子和鸳鸯。说实话感觉鸭子跟纪中的长得一样,但是纪中的不怎么会飞,纪中太小了。

晚饭,回来腐败了一阵子,就睡觉了。

Day 2

早饭,这回拿铁里面有时间加糖了,然后时间表跟昨天基本一样,只不过换成了讲座,然后讲座完之后还有很多时间参观校园,就随便走了走,感觉景观有点重叠,不太像纪中一个区域有一个区域的建筑特色。而且建筑也不像纪中那么稀疏、错落有致,但是还是很好看。

然后就到了紧张的比赛了。StarLbright40 说自己是大凶可能翻盘不了了。结果发现我是大吉,感觉有点信心了,但是考试开始只对自己说过一次想翻盘,而且仅仅是想而已,可见这场比赛在我心中的摆烂程度。

一点已到,开题!

先大致扫了一眼题目,感觉不像昨天那么神秘,T1 像是什么数据结构,T2 感觉很怪,T3 感觉更怪的数学题。

T1 一开始看错题了,以为可以拿很多分数,后来先晾在一边,看 T2。

发现 T2 给了很多很奇怪的限制,还要构造方案。大意就是选择原神的圣遗物,选择一些,然后把他们加起来得到 (a,b),询问 Q(A,B)(A + a)(B + b)较优的构造方案(误差 2500)

感觉可以乱搞。就写了一个类似调整法,或者说爬山的东西,然后交了一发。

75???75???

发现 Subtask 2, 4, 5 过了,但是 1, 3 没有过,很神秘。

写了个 Subtask 1 的暴力,最后骗到了 85 分的好成绩。

当时已经过去了两个小时,说实话感觉这个乱搞其实很好想,以为人均切掉,所以赶紧搞 T1。

T1 就是一个排的队伍上搞插入,查询和时空乱流,回到过去修改插入的位置。

很容易改写成一个树的结构。

Subtask 1,就是没有时空乱流的操作发现可以搞离线。就直接写了,发现还不用写线段树,写树状数组,20 到手。

Subtask 0,支持 O(n^3) 时间复杂度,写暴力,发现不太好搞,调试了很久,最后 5 分到手。

Subtask 2,时空乱流次数不超过 200 次,分段离线,暴力乱流,树状数组维护,把上面两个代码拼接在一起,20 到手。

最后 45 分。

此时已经对这题比较满意了,所以看 T3。

就是求 a_ix + (x \bmod b_i + 1)(x^i \bmod [x^{1/2}]) \equiv c_i \pmod P 的同余方程的解(一共有 5 个方程,不多不少),数据范围和 Subtask 有一大堆。

第一档部分分,x \leq 10^{12}, b_i = 1

很好写啊!(x \bmod b_i + 1) 一直都是 1,枚举中间那一坨东西的值,处理一下就变成了形如 a_ix \equiv 1 \times v \pmod P 的形式,此时只需要写一个逆元,求出 x 的值,回代验证就好了。

翻看数据范围,9 \times 10^{17} \leq P \leq 10^{18}long long 直接炸了,怎么求逆元?

此时大脑被时空乱流了完全忘记了 -std=c++17__int128 这些东西,于是决定当场放弃。

还剩十分钟多一点,写了一个抽卡模拟器,51 发出了三个六星,离谱。

出来居然发现 T2 乱搞居然没什么人想到!怎么会是呢?可能我乱搞题做太多了吧。联考题有一道 CF 的题目都是被我乱搞冲过去的。

对,正确性无法保证的那种。

最后 66 + 130 =196,纪中 Rank 7 -> Rank 3,大力翻盘!

晚上发现家园 4 楼可以微信支付,于是就又吃了好多东西。但是点错菜了 qwq。

然后?就是回酒店休息腐败。第二天上飞机,PKUSC 就算完了。

还是挺有趣的。但是如果我考砸了,我不知道我是不是还会这么说。

Day X

完全依靠 D2T2 扭转,发挥出了很不真实的水平,居然还拿到了优异,好离谱啊。

Day 1 甚至连人口普查分都没有,被初二的吊打,居然最后还拿到了优异。

其实 Day 2 也不是我们来 PKUSC 里面的最高分,存在有人 Day 1、2 都比我高的人的。

纯粹是运气吧。前一段时间的运气太差了。

2 总结

现在是 Day 3 下午一点,在飞机上些总结,我简单的说几句吧。

我想起了班主任的一句话,大意就是你越想要什么,你就越得不到什么。我想要发挥好,我首先要有一个正确的心态,从 GD(K)OI 2023 可以看出,我,Alpha_Drawer 的心态仍然是很容易炸裂的,这是一个缺点。改正方法就是,顺其自然。每一次比赛时候,都放平心态,并且做好一个最坏的打算,这样其实是非常有助于保持心态的。

我的班主任(又来?)是一个彻彻底底的悲观主义者,但是这样的好处就是当你每次都往最坏最坏的情况考虑时,如果这个情况到来了,你有心理准备;如果没有到来,你反倒可以欣喜一番,也有助于保持心态的稳定。

这里用 GDKOI 2023 的总结语来说明这个问题,可以很好说明,心态好与心态差之间的关系,GDOI 心态比 GDKOI 好,所以 GDKOI 最有代表性。

最后,也是最重要的,心态问题。两个月以来,我对自己的期望太高了,以至于有时候是机房里来的最早的,走的最晚的人,然而,举例,我们班上的某个同学,尽管他每天早上起床那么早,然后又学习到那么晚,却一次次考试发挥失常甚至有的时候考的还没有上课睡觉的我好。同理,我感觉我跟 TA 差不多了。当然,还是要放轻松一点,毕竟正如上面说的,需要积累,而且看到某些大佬切题,也不用太紧张,因为我们之间的差距,虽然不是特别大,但是也不是一两个星期就可以推平的。还是慢慢刷题。当然,早起是我自愿的,真正的问题还是要放轻松,不能过度紧张,过度期望导致发挥失常。

但是,虽然心态上要求摆烂,但是行动上,策略上,肯定是不能、不需要、不应该摆烂的。以这次比赛为例,D2T2 就是一个乱搞题目,其实,这个乱搞的正确性是很难保证的,因为 Subtask 3 炸掉了,是严格包含在 Subtask 5 里面的。所以 Subtask 5 也会炸才对。(当然,也不一定,题目引入了参考值这个概念,你的答案比较误差是跟参考值相比较,而非最优答案,可能由于数据范围原因,Subtask 3 使用的是较慢但是较为精确的算法,而 Subtask 5 则牺牲精度,采用了其他更快的算法。)D2T2 乱搞能拿很多分,而且乱搞不是很难,就凭什么拉开差距呢?就看有没有精力,想不想去尝试一下。

另外,日常的训练,也应该抓紧时间,多学习一些算法,多做一点 Codeforces 和 Atcoder,这个可以算是缺点了,经验、知识储备不够,T1 炸掉了。

(这两个的 Rating 一直在掉,说实话搞得我没有什么精力去做了,不过,这里说不定可以绕回心态问题讨论,越想上分就越上不了分,这是其他内容了。)

差不多就这么多吧,看看高一之前能不能补完所有的省选算法。别的目标我不敢瞎定,要是实现不了就尴尬了。