SCCPC2025 游记
SCCPC2025 游记
省流:被翘脚牛肉做局了
Day -?
得知有 SCCPC2025 这个东西,然后发现七林的同学都不参加,于是就和七高的同学组了一个队伍,两个队友是 hkx、lyr,并且七高全员参加,一共组了整整 4 个队(算上初中生就是 5 个)。
某一天晚上,hfu 让我们给队伍取个名字,如果不取就默认为 大源职业学选 01 队,但是既然我们有决定权,我就说取名叫 转杆,来纪念我 APIO T3 5 分的高分。
Day 0
全家陪我一起去乐山,他们相当于去旅游。一大早就出发了,大概中午到的,然后品尝了钵钵鸡,豪赤。
下午热身赛,见到了学校里其余人,然后进入赛场。发现 VSCode 自带一键编译,好评,然后就开始看题。发现似乎全是签到题,就每人分了几道来写,然而 lyr 贡献出了 \(3\) 次罚时,但最后还是早早 AK 了,然后玩了一会儿图寻。总体来说赛场环境挺好的,键盘也比较好用。
然后本来我们打算晚上一起 VP 去年省赛,但是有人提议要去吃翘脚牛肉,我们就跟着一起去了。于是 \(12\) 个人坐一个桌子,又因为翘脚牛肉是自己烫,或者煮到火锅里面的东西熟了自己夹,于是十分考验手速。
然后因为我对食物的渴望,很多肉都是看起来没好就被我夹走了,所以整个吃完下来我感觉所有东西都非常嫩(除了面是硬的),所以有一种不好的预感。
晚上回到酒店先窜了一次,大概 9:30 的时候,我去到 hkx、lyr 的房间,准备一起口胡一下去年省赛的题就下拨。这个时候我在 5min 内喝完了一整瓶水,顿时感觉肚子里翻江倒海,又去窜了。之后大概看完所有题并剩下一两道没有口胡,此时已经是 11:00 了,然后就启动了混乱大枪战,非常好玩,最后在 12:00 成功睡觉。
Day 1
早上 7:40 醒来,窜了一次。然后收拾好东西,去吃了乐山的咔饼,非常好吃,最后卡点进入了赛场。
刚进赛场,肚子一阵翻腾,又去窜了,回到赛场的时候已经开始 5min。这个时候 lyr、hkx 说 A 是前几天才写过的博客的最小乘积板子,但是他们因为找不到 IDE 于是无法开写。然后我大概配了下环境后看了榜,发现 I 已经过了一车了。
这个时候 hkx 在写 A,我发现 I 是签到题,就马上花了 2min 写了。过了一会儿我又发现 F 也是简单题,也写了。然后把电脑交给 hkx 继续写 A。
这个时候 lyr 说 K 有思路,直接倒序做就结束了。然后我发现 H 也过了很多人,但是我看到题第一反应是两个正负号是绑定的,就感觉是大分讨。过了一会儿 hkx 再次把电脑交给了我,我看了下公告发现正负号不是绑定的,那这不是简单题了吗。结果刚写完发现有个小 corner,及时发现了,特判一下就过了,没有吃罚时。写完之后又立马写 K,也过了。这个时候刚刚 1h,来到了 rk5。
再次把电脑交给 hkx 写 A,又写了会儿直接一发过了,来到了 rk3。说实话这之前我都不知道最小乘积模型是个啥,幸好两个队友刚学习过,要不然这题估计还真没啥思路。
hkx 在写的时候 lyr 说他 JL 都大概有思路,我感觉非常牛逼。看了眼 J 发现是简单 dp,L lyr 说是直接分治但是具体细节没想好。于是我就开始写 J,写完通过样例直接交。收获了第一个罚时。又想了下发现有个小 corner 算重了,改了下就过了。这下直接来到了 rk1(半小时体验卡)。
然后的题都不算简单,就开始进入每个人想自己的题环节了。粗略看了下,B 是个交互,应该是大分讨,C 第一反应是高斯消元,但是无法通过,所以可能是 SPFA 或者迭代之类的?D 是个啥不知道,E 看起来像困难多项式,G 是寒假线性代数讲过的一模一样的题,但是我们完全忘了,L 分治后有些细节需要搞,应该是最可做的题。这个时候我们没过的题中 C 有两个队过,其余题均无人通过。
然后我就开始想 L,hkx 尝试写 C。想了一会儿我发现分治后直接对一边排序,对另一边二分好像就行了?非常激动,但是细想了下发现 corner 有点多,于是出去上了个厕所冷静下。上厕所时发现我把题意理解错了,然后重新梳理了一大片思路,回来的时候感觉都想完了,然后就直接开冲。
于是就是写分治,写排序,然后容斥掉一大堆东西。写完之后想和暴力拍一下,结果发现暴力无法通过样例,再一看发现题读错了,这下直接去世。于是让 hkx 接着写,我又接着想。结果我发现我在上厕所前的思路几乎都是对的,一上厕所把大部分对的思路改成错的了。但好在总体框架还是对的。
然后我又自己想了一会儿,感觉大概想的差不多了,就又让我上机。我写了一会儿,终于是通过了样例,然后写了对拍拍过了,测试了极限数据没有问题,于是不出所料一发通过。此时是 12:50 左右,来到了 rk3,并且过了会儿就封榜了。这个时候非常激动,然后看了下 BCDE,感觉就 C 可做,并且这个时候 hkx 在写 C,我就又去窜了。于是前一天晚上到现在一共窜了 5 次,合理怀疑是被做局了。
回来发现 hkx C 没有调过,然后我感觉我大概能写出来,就让我重构代码了。我就写了个最朴素的 SPFA,写了一会儿通过了小样例,然后发现大的样例有 eps 误差,所以调小了 eps,发现可以通过。又测了下极限数据发现跑的飞快,但因为我担心精度误差,就用 long double 测了一发,发现两份代码输出尽然不一样。然而又因为 long double 看起来像是会超时,所以没敢提交。
最后犹豫了下交了 long double 的代码,TLE。然后又提交了最开始的代码,发现直接通过了,所以结论是我虚空卡精度了十几分钟然后还吃了一发罚时。现在是 13:50,剩下 20min 应该啥都干不了了,所以提前下拨。
然后开始研究电脑上有些啥,又把每个题都提交了一遍,还打印了一些无意义内容。最终我们是 8 道题,按过题顺序分别是 IFHKAJLC,根据封榜前的信息合理猜测我们应该不会出前 5。
值得一提的是:考场上每过十几分钟,就会随机一个地方爆一个气球,并传出巨大的声音,非常提神。甚至有一次我们一个很近的队伍的气球爆了,直接给我吓到了。
结束后找了下其他同学,其他同学总体来说还行,但好像被 K 卡了很久。后面去听讲评,发现题目按难度排序好像 DE 都在 L 前面?看题解得知 B 是超级大分讨,D 是小 dp,E 是熟知竞赛图性质后的 dp+NTT优化,G 是线性代数大困难题,K 标算是直接倒着做+并查集就结束了,L 也是大分讨,但是似乎比我的做法要简单点。然后又得知有好一些人被 K 卡了很久,如果没反应过来 K 可以倒着做,那么就要用启发式分裂或者 LCT 这类比较高级的算法才能做。lyr 能在 3min 内反应过来倒着做并且秒掉还是非常牛逼,不然我可能要想好久。
讲完之后就润了,回家。
到家之后发现 L 我做的非常复杂,大概是要处理以下一个子问题:
给定一个序列 \(a\),求 \(\sum\limits_{1\le l\le r\le n}|\sum\limits_{l\le i\le r}a_i|\)
因为 lyr 一开始告诉我是分治,所以我就顺着分治的思路想了个 \(\mathcal{O}(n\log^2 n)\) 的做法。然而事实上这个东西就是你直接把前缀和 \(s_i\) 排一遍序,答案就是 \(\sum\limits_{i=0}^n s_i\times (2i-n)\),复杂度优秀,写起来也很简单,所以就相当于我在考场写了坨大的。
然后看榜,我们是 rk4,前面有两队过 9 题的和一队过 8 题的,我们是 8 题队伍中排第二的。感觉这次总体来说还是不错的,至少没有像之前的几次大赛犯很唐的错。
Day?
写完了所有题的题解,SCCPC2025 题目&题解 - max0810 - 博客园。
总结
这次考试主要来说时间分配还不错,代码能力也还可以,当然也少不了队友的帮助,并且没有太大的遗憾。但还是有些小失误,比如一开始做题速度有点慢,我把 L 的思路想错,hkx 没有坚定写 C,最后虚空卡精度之类的。希望我能在之后的比赛中也能取得好成绩吧!
榜的 link,我们是 rk4,大家可以直接点击队名后查看相关信息,这里就不放图片了。
附上一些其它的图片:
(由于封榜后没有气球所以只有 7 个)