thupc2025初赛游记

· · 生活·游记

人生第一场 ICPC 赛,最后 3/13,rk539,不能说好但是也不能不说不好。

我队三人都是人生中第一次打 ICPC,要求不比这么高,我觉得可以了。

赛前

没错有人赛前两天才组队。

拉来了yj和x+b,由于我们分别来自苏州中学、新区实验和常熟中学,所以队名叫做苏新常一家亲

不知道还有试机赛,所以没打。登录的时候账号密码还输了半天。

赛时

11:00开题。我从A开始看,x+b从E开始,yj倒序开题。

yj一眼看出M是签到。最开始以为是中国剩余定理,然后发现是小学数学,我们在11:02:48通过了这道题。

此时rk300+,却是我们本场最高光时刻了。

然后分配任务,我感觉A很好写,所以我写A,x+b写C,yj写I。

A很快就过样例了,但是交上去却WA掉了,由于没有 ICPC 参赛经历,所以我不清楚原来是不显示具体测评结果的,所以我不知道我是全WA还是有一点点问题。

发现有不少人过L,但是我看完没啥头绪,遂放弃。

随后x+b的C挂了,我们帮他找问题。

他的原作法是二分+check,我觉得他的check写的有点问题,但是修改后任然没有通过。我决定我来写这道题,随后我观察样例感性理解,发现答案好像是 \rm [st-1,st+1] 中第二大的数。

经过分析我发现其实是可以换一个最小的数到 \rm [st-1,st+1] 换掉最大的。随后移动过程中 \rm [pos-1, pos+1] 中可以也仅可以是这三个数滚。所以直接输出换完后三个数中的最大的即可。

额外考虑 \rm st=1\rm st=N 的情况,这就有两次换的机会,尝试换两次随后同上即可。

12:38,我们在四发罚时后通过了这一题。

有一发罚时是因为我 freopen 忘记删了,太唐了。

随后我去帮助yj写I题,现在x+b在研究D题,yj在研究L题。

乒乓球比赛这种东西一次不是你得分就是我得分,很像在网格图上走啊。所以我感觉应该不是yj写的一堆,应该是个很优雅的DP,题目只是限定了其中一些格子必走。

显然有 \rm dp_{s1,s2},时间复杂度 \rm O(\sum N^2)

什么??! \rm N\rm 10^5,什么乒乓球比赛!

发现合法过程,分差一定为 \rm [-11,11] 中的某个数,维护分差即可。

随后调了很久,吃了很多发罚时。甚至去写了全套对拍,然后交了发暴力(没错 ICPC 交暴力)发现暴力挂了。但是就此找出原因了。

一行代码:

if (max(s1, s2) >= 11 && abs(s1 - s2) >= 2 && s1 + s2 != N) ERR

我把它写成了:

if (max(s1, s2) >= 11 && abs(s1 - s2) == 2 && s1 + s2 != N) ERR

就这个原因!

13:52,我们以7发罚时的代价通过了I题。

没错,其中一发又是因为我没删 freopen,崩溃了。

yj发现G是个博弈,过的人也挺多的,于是他去写G,我来写J。而x+b发现D的除法不是整除后,发出了痛苦的哀嚎。

J我想实现一个贪心做法,写了很久。

x+b的D总感觉对了,但是一直没通过。

我给J写了全套对拍,拍了很久,拍出来一堆问题,一点一点改,但是可惜直到最后一分钟都没有通过。

最后我们以3题结束了这一场比赛。

赛后

其实平心而论,打的并不算差。我也为队伍贡献了唯二的两道非签到题。

就我个人而言,我以为5个小时的比赛我不可能撑下来,但是事实上我一直奋斗到最后一秒。虽然结果不咋样,我觉得这次路途很有意义!

最后20min对着J题拼命拍,每拍出一组就改一次,从最开始的只能撑过2组到最后的200组。

当然,毫无疑问成为耐罚王了。