SYSCPC 2024 游记
SYSCPC 2024 游记
二零二四年十二月二十二日,星期日。
早上六点起床去纪中,七点钟发车,九十分钟后抵达中山大学。
大学城,真的是一座城市。如果不是周围的建筑上写着“教师公寓”,以及看到写着“中山大学”的大门,还以为在普通的广州市区。
到了赛场,比赛地点的机房和在纪中的机房一样,都是 403。纪中一队、纪中陆队、纪中二队在五楼。
跟金钩爷 lnw143 和 ZnPdCo 沟通,观察到三个人带了三本字典,其中有两本都是牛津高阶词典。最后只留下一本牛津高阶。
发现桌面上有三个保温杯,应该是礼品。还有一个泡沫板,猜测是插气球用的。
环顾四周,都是大学生,相比一定很强吧。
纪中十队作为打星队,三个高零选手,显得特别弱小。
整理桌面,铺开草稿本,一切都跟做模拟赛一摸一样。打开笔盒,拿出铅笔。
没带笔芯。
这意味着在比赛时将不能用自动铅笔。这对于平时习惯于用铅笔打草稿的人来说简直是最为致命的打击。
引发了不安
还好有提供 A4 草稿纸,而黑笔在这种纸上写字还算顺畅。
九点。比赛开始。
翻开纸质题面,A 题是对三个数取
ZnPdCo 负责这题的实现,写完登录完账号后,直接交,过了。
但是打代码时出了点问题,键盘是坏的。找工作人员换了一个键盘。
E 题是水题?lnw143 看榜上有一车人过了。就猜。在草稿纸上把三个样例画出来,突然意识到:只有最左边和最右边全是
lnw143 负责写。交题的时候交到 B 题去了。再交一遍,没过。一看代码,Alice 和 Bob 写反了,没测样例所以锅了。修正后直接通过。
自此,每一次交题整个队三个人都会一起看着,并且把所有代码都单独建一个文件夹放在桌面,以防误触。
他们认为 C 是大模拟,是平衡树板题。码力不行,看 K。
不知道在想什么,想到把
写代码,途中出现了一点问题,没过样例,就先把电脑让出来,在草稿本上手玩样例二。发现算
过了样例后,就去交题。三人围在电脑前,祈求着 danielqf 保佑。
求求你
绿色的 Correct 显示在通过记录上,此时三个人都有过的题。
D 题挺简单?好像很多人过。思考。
不知何时,在开大数组后,两位 HAK 齐心协力把 C 过了,成为打星队首杀。
思考。化期望为概率。求
在草稿纸上把 DP 式子列出来后,就跑到电脑前敲。没过样例。
哪里出错了?此时 HAK 在激烈讨论 L,虽然被标记为不接受,但仍然没有放弃。好像是修改了一个判断语句后就通过了。
换根 DP 中维护
然而还是 WA。
金钩爷用神秘语句测爆 long long,发现
整个队伍好像没有思路一般,空着个电脑不知道干什么。lnw143 说要看 G 题。
区间,
此时,左边的大学生队伍中,传来了一些有用的信息:
“可以把减法改成加法。”
是的,值域是
以及一些更有用的信息:
“现在的问题是把十进制转换为二进制。”
大抵是为了异或操作吧。
“你用 unsigned int 存就是二进制了。”
答案在
异或,考虑拆位。要数区间有多少个
看见了歪曲的
ARC092D,当时 VP 的时候因为没有考虑两个
相当于求
打代码,暴力是对的,但是输不出结果。ZnPdCo 说树状数组在插入 ++x 解决。但还是过不了样例。
把电脑让出来。打印代码。盯着它看了若干秒后,发现树状数组用差分求区间和的时候,写了
越是清醒反而越加沉溺
这启示了在代码有问题的时候,要通读整份代码,可能就是一些本来不会出错的地方出错了。
J 也很简单?lnw143 说这是数位 DP,但是没有打出来。和 ZnPdCo 讨论出来了一个写法简单的贪心,写,然后过了。
此时刚好封榜,十三点。榜上有一车人过 F,于是思考。
想到了答案相当于把所有合法的串的字典树建出来,边数乘三减去深度。
lnw143 发现了,合法的串的出现次数一定等于出现次数最多的串的出现次数。
lnw143 还发现了,不被其它合法串包含的串的字符集一定是互不相交的,并且每个字母至多会在一个串里出现一次。
lnw143 还发现了,如果把原串中相邻两个字母连一条边,“不被其它合法串包含的串”一定是一条链。
主动请缨,持笔写 F,经过一些调整后总算过样例了。
如果过了 F,那么就有九题了。
但是 WA 了。
调试!只剩半小时了,只有这一条路径可以翻盘。
最后的可能性,请你一定抓紧
只剩十几分钟了,对拍来不及写了(?),只能静态调试了。
三个人盯着代码看,因为码风奇异,ZnPdCo 和 lnw143 都说不好调试。导致找不出问题。
没能压哨绝杀。
和 aaainoPr 一样,本来有九个,因为神秘原因,第二个被标记为不接受。
我是罪魁祸首
问了机房一圈,发现大多数队伍都过了八题。CHAK 甚至过了十一题,简直不是人。
滚榜的时候,发现由于罚时太多了,导致差几名达到金牌分数线。
回顾这次比赛,感觉上比上一次 VP EC Final 2022 时配合更加默契了,不会互相抢电脑。而且想题时主动出击,做完一题立马想下一题,不会闲着浪费时间。上次 VP EC Final 时,看到 B 题会做就一直死磕,因为做法有巨大的漏洞,但是一直轮不到上机,不清楚时算法的问题还是代码的问题,导致一直干坐着,而且没有进一步地思考更好地解决方案,浪费了时间。
要通读题目。可以一开始不看完所有题,但是一个半小时内一定要把每一道题目都看一遍。这次听说 H 是水题,不过开局没人开,中途别人看没人过也不看,导致简单题被漏掉。
不要吃太多罚时。以前一直不太重视罚时,以为只要过的题多就可以了。但这次的成绩给了当头一棒,都是过八道题,有的队伍罚时少,就有金牌,而罚时多的题只有银牌。昨晚 ABC 也是,G 题做不出来,前面罚了
曾今那个在赛场上做 CSP2023 结构体,过编就过大样例的人,现在去了哪?CSP 前做了一下,用时差不多,但是多了很多无谓的调试。写代码前思路一定要很清晰!写代码时一定要很仔细!
整个队伍最大的弱点就是我,我那糟糕的代码实现能力,以及诡异的码风,使得整个队伍没能在最后一个小时内过掉 F。如果换成 ZnPdCo 或 lnw143,或许就能过了。至少不会三个人都调不出来。lnw143 说我要改变一下码风了。为了集体的利益,决定在今后,整改写代码的习惯。
- 控制一行代码的长度。除了缺省源以外,其它代码都不应当写太长。
- 及时换行,不要压行,一点也不要。CHD 没有压行,所以码力很强。
- 减少逗号的使用,for 循环里不要为了少打一个大括号就把一堆代码压缩成一句话。
- 写代码时保持注意力高度专注,不要犯低级错误。
不要因为我的问题影响了整个队伍的成绩,这周内,每场模拟赛的代码都要经过 lnw143 的审阅,让他监督我的码风修正。
周四就要参加 EC Final 了,希望下次比赛纪中的队伍能发挥得更好,danielqf 能继续保佑纪中十队。