ICPC / CCPC 2026 游记
本文同步发表在洛谷专栏,你也可以点击这里以获得更佳的阅读体验。
前段时间一直在忙转专业的事情,最近刚刚有空了点,是时候开启新赛季的游记了!
4.30 - ICPC 西安邀请赛
西安邀请赛正好放在了五一假期前两天,所以正好提前去玩一天!其实是因为明天机票太贵了。
早上六点钟就要起来赶早班机,困死我了。不过确实是我和新队友一起打的第一场比赛,其实还是有点期待的。
在机场走的时候发现停着一架没见过的彩绘机,发现是天骄航空的新涂装,记录一下。内蒙本土的航空公司,唉有点难评。
飞机上睡了会,下飞机买了杯咖啡就去酒店了。我一直在喷,西工大怎么直接把校区建在山里了,从机场打车过去都要七十公里。
我的钱包在天上失望地看着我。
下午收到了三重喜报!
首先是,下午去找了 XDU 的朋友,好久没见了真的很开心。
其次是,大概下午三点多的时候,虽然邀请函上写着的是英文题面,但是突然在西安群里看到了有中文题面!让我们感谢 cfz 出题组。
然后是,大概下午五点多,通过我的神秘人脉得知到了 NMCPC 目前初步确定的时间!之前一直在担心会不会撞贵州,或是其他比赛。现在正好在贵州缴费截止的前一天得到了,大道消息(?)。NMCPC 不会撞任何比赛了!接下来可以放心缴费了。
西工大这个地方,从市里过去还没有快速路或者高速,往返一趟市区二十多公里,以及五十个红绿灯,走一下停一下真挺心烦的吧。
晚上回酒店打 CF,大概十二点出头的时候,一转头发现地上有一只爬得飞快的巨大的虫子。大概起码三厘米长,不过我没带眼镜看不清它长啥样,还好没带眼镜。然后把它踩死了并且捏起来扔到垃圾桶,太痛苦了。
事后思考了下可能是蟑螂什么的,太恐怖了。煮波超级怕虫子。
5.1
今天是报到日,当然我不清楚为什么热身赛和正赛都放在了明天,也就是说今天只有一个签到和领物资。所以我就一觉睡到中午十二点了。
中午吃了饭就和队友去报到了,我还是要骂为什么要在这么一个鸟不拉屎的山里办比赛。
确实是五一,学校里没什么人。我和队友走了大概十多分钟,一路上只能看到同样来报到的其他队伍。
这场的物资还挺好看的,包括袋子和衣服和胸牌的设计我都很喜欢。当然,我也确实第一次见到这种,邀请赛级别的比赛,胸牌上只写着「队员」「教练」字样的。去年的辽宁省赛好歹还有个学校名字的。
接下来去拍照。一个小趣闻是,拍完照我们报学校名字的时候,摄像老师突然抬头,感觉语言里带着点惊喜地说,他也是我校毕业的。太巧了。
签到流程就结束了,然后我就找朋友去玩了,以及买一点明天赛时吃的东西。
今天西安下雨了,到我晚上回酒店的时候,出了城区就开始下得很大。是不是叫什么,倾盆大瓢。
5.2
今天是比赛日!
热身赛八点开始,虽然不急,但是还是想早点去,标记一下领地。另外早上七八点,酒店附近根本点不到咖啡,看了下校内的瑞幸早上七点开门,那还是早点去学校里买吧。
到了已经七点五十多分了,索性还是先去场地里看看吧。西安是机房竞赛,每个机房都挺小的,大概就只能容得下十几个队,或者更少,反正总体的感觉是略显压抑的,可能和窗外没有太阳也有点关系。机房的 DOMjudge 也很老,具体什么版本我忘了,但反正是有一种上世纪的美感(x)。
先去热身赛签了一道题,发现居然有三份中文题面,这波给到夯。然后调了一些配置以及测了一下评测机速度,就下楼买咖啡了。我打开地图认真看了下,居然这么远,已经在整个校区最角落的地方了,还是骑个车去吧。
西安的雨还在零星地落着。我骑着车,姑且算是悠闲地,在校内的小路上慢慢往前晃。风一阵一阵地吹过来,带着没散干净的凉意,偶尔还有几滴雨点砸在脸上。空气里混着雨后的潮气和泥土味,倒也让人清醒了不少。
骑了一会儿,前面忽然像是进了施工区域。我停下来翻了几次地图,确认自己确实没走错,只好继续往前骑。假期里的校园本来就安静,路上几乎看不到什么人,偏偏远处又时不时传来泥头车的轰隆声。那种空旷和吵闹混在一起,反而显得更冷清了。风再一吹,整个人都不由得打了几个寒战。
我回去的时候,热身赛刚好结束,中间有半个小时的开幕式,我懒得看,于是就在楼上转悠,突然发现楼道栏杆上挂的标语很有趣。
接下来就是比赛时间了。
这场的签到是 E,发现比去年西安站的签到简单多了,三四分钟写出来,然后就提交,然后喜提 TLE,何意味。我看了两三分钟确定程序逻辑不太可能出问题,然后把 umap 改成 map,过了。喜提 29 分钟罚时。
我再也不用 umap 了!
接下来就去开 D。口胡了一个贪心,交了一发发现 WA 了。然后过了一会按照队友给的思路,将信将疑地写了一份代码。其实没抱有多大希望的,但是居然过了?很惊喜,虽然我也不知道这是咋过的。
赛后发现我最开始口胡的那个做法是对的,但是不知道什么地方挂了。
接下来去开 J 了。看到 Convex(笑),想到了去年西安站的签到也是 Convex,非常相似啊!最开始想到一个非常接近正解的做法,然后觉得,同一个出题组不太可能在同一个学校的相邻两场比赛里出两道差不多的签到题,然后被我否掉了,就没有继续想下去了。
接下来就开始跟着队友讨论,期间交了三发都挂了。过了一会,终于讨论到了一个我觉得很对的做法,写了一下发现过了。然后发现其实就是我最开始口胡的那个做法,到这个时候罚时已经爆炸了,其实已经有点破防了。
接下来去开 A,但是具体过程我有点记不清了。过程中有几次队友想去开别的题,被我制止了,还是全力开一道吧。现在事后想起来,当时可能已经受到心态的影响了,所以接下来几个小时,全程都在跟着队友的思路走,当然,这题也确实没开出来。
然后就结束了。到最后就是三题,全程没进过铜牌线,当然也就没有牌子了。后面比赛结束后我听了一会讲评,然后和几位朋友面基以后就走了,懒得看闭幕式了。
赛后面基的过程中,经过讨论得到,邀请函中写的是 10-13 题(英文),事实上是 14 题和中文题面,鉴定为诈骗。
后面打算和队友去市里吃点东西,然后直接去机场。去市区大概又是一个小时打车,怎么这么远。
路上我一直在想,这好像不是我该有的水平。不是不该做成这样,而是不该以这种方式做成这样。这些问题似乎,我并不是完全不会,而是有些思路其实已经摸到了边,却又被我自己用各种理由否掉了。
我想起来 22 和 23 年刚打 OI 的时候,那时候就始终是,我并不认可自己的水平,也不相信比赛会出我能想到的做法,所以每次有一个看起来像正解的思路出现,我的第一反应其实是先怀疑它。然后发现最早被否掉的东西,其实就是正确答案。好像今天也是这样。
这段时间也确实很乱。从上学期期末结束以后,各种琐事就一直没有停过,寒假甚至过年也没能真正歇下来。最近一个多月整个人的精神状态也比较堪忧,好像自从转专业以后,就突然多了很多压力,以及一些很难说清楚但确实一直压在身上的东西。
当然我也知道,这些不应该成为我为自己开脱的借口。状态不好是真的,训练强度低也是真的。压力很大是真的,赛场上没有做出该做出的判断也是真的。机会也已经出现过,只是被我自己亲手推开了而已。
咎由自取。
5.9 - HACPC
煮波 CUHK 的朋友放暑假了,昨天来找他玩,所以现在在深圳。早上五点就起来了,先陪他飞回内蒙,我再转机去郑州。
好困。
他的行李额疑似不够,正好可以把托运行李挂到我的机票上。不过也有好消息是,第一排还有空位,可以稍微舒服点吧。
昨天四个小时经济舱飞过来,然后晚上睡了四个小时,加上凌晨起来坐三个小时经济舱,确实有点累。不过也可能是我有点矫情吧。
到呼市以后就转机去郑州,下一段是九元航空,老牌廉价航空了。甚至因为不进中航信的系统,所以没办法走机场的中转通道,必须上楼重新办值机重新过安检。
值机也不能走机场的柜台,九元和春秋有专属的柜台(笑)。柜台的工作人员态度特别差,问了一下有没有前排和安全出口位置,话还没说完就直接打断我了,问我是不是要升舱。89 块钱,想了一下还是有点舍不得,算了。然后就把身份证和登机牌扔给我了,是字面意思的扔在桌上。
廉航的体验从近几场的第一刻开始就很不爽了。其实也不是贪便宜,是只有这一班时间合适。事实上也并不便宜,下午有一班天航票价比它低,服务还比它好,就是单纯的没招了才选它。
好丑的涂装。像是飞机长瘤子了。
然后就是毫不意外的座椅非常硬非常挤,睡不着,还好就一个小时出头。
下飞机就直接去酒店了。到了发现周围特别特别荒凉,我说怎么这么便宜。不过至少离学校近,问题不大。
跟队友会合了,接下来就去学校领物资。
今年没有郑州邀请赛了,就是单纯的河南省赛。物资很少,其实就只有胸牌和衣服,甚至没有专门的袋子。不过报名费就 450 块钱,能理解以及其实挺划算的。
另外衣服还挺好看的。
然后和队友去吃了烩面。震撼美味!
不过确实有点累,没什么逛的心情,吃完饭就回酒店了。
5.10
今天是比赛日,不过十点才开始,可以稍微多睡一会。
好热好热好热好热好热。
到场地了,毕竟是省赛,这次是机房竞赛。不过因为热身赛是线上的吧,其实就相当于没有,所以也是第一次来场地,伴手礼是三个神秘玩偶。
当然照片是我赛后拍的。
最开始确实不清楚签到题是什么,看了一下 K 就是一个裸的 BFS,没想别的就直接去开了。过了一会队友说 C 直接输出一个
过了几分钟突然意识到我读假题了。队友提出应该是一个背包,但是直接跑背包的复杂度肯定不对。然后想到因为背包容量只有 2,所以其实无脑贪心,到最后三张牌跑一个特判就行。
这个时候队友把 K 写完最后一点就提交了,这个时候是 17 分钟。看了一眼榜单,居然在榜首!意思是,我们拿了 K 的一血吗。两位大神队友可以带煮波捧杯吗!
于是就换另一位队友上去写贪心。确实很好写,大概十几分钟就写完了。但是交了一发不对,加了几个 corner case 的特判,还是过不了。
与此同时换下来的队友也在看题,然后看到了 L,好像可以直接暴力 exgcd,他说他是 exgcd 手子(),所以 D 好几发没过以后就交给他去写 L 了。
接下来我们两个人就一直在讨论 D。大概过了三四十分钟,exgcd 手子(?)写不下去了,于是他俩又交换,上去继续改贪心。当然,又是好几发没过。
旁边的 exgcd 手子队友也去看了 D,坚持说贪心到很小的范围要跑背包。最后实在没招了,加了一个背包上去,然后也没过。又加了一些细节,过了。
这个时候大概比赛刚开始两个小时,我们的 D 已经吃到了惊人的 8 发罚时,震撼美味!
接下来是 exgcd 手子队友继续去写 L,期间我带的 exgcd 板子居然还派上用场了,用于核对 exgcd 写得对不对。
我们两位接下来就一直在看 E 了。发现是一个大分讨,于是就讨论了一堆情况,期间其实也断断续续交了好几发,但是都 WA 了,还是给队友写 exgcd 吧,我们两个就打印下来代码慢慢研究。
大概三个半小时吧,队友的 L 开出来了!这个时候已经写了大概一百行,包含一个 exgcd 以及六个二分()。
感觉很适合放在游记里,所以我把它打印下来了。
发餐了,袋子里还是三个郑轻经典的马斯卡彭,还是一如既往地好吃。更多细节可以参考我去年的游记中郑州站的部分。以及一大堆火腿肠,我一根一根拿出来,数了一下发现有九根,不知道为什么就是莫名感觉很好笑()。
当然就是飞速把马斯卡彭继续,吃干抹净(?)了。
三个人一直在讨论 E,期间也包含了陆陆续续的提交,以及陆陆续续的 WA。这种事情绝对很奇怪啊.jpg。
四个小时了,封榜了。接下来,我们在六秒内飞速完成了四发 E 题的提交,其中第一秒就提交了两发,令人恐惧的效率!
事实上是,因为我们在讨论题的时候把手按在题面上了,然后不小心压到了回车键,等我们注意到的时候已经交完四发了()。等我反应过来发生什么了的时候就已经笑疯了,这种事情是不是写到小说里也是要被喷的,关于我打河南省赛不小心压到回车键被罚 80 分钟这件事。
红温!红温!红温!
哦突然想起来,是不是我写了好几年 CSP-J/S 迷惑行为大赏的报应()。
接下来就是不断地分讨,不断地提交,不断地 WA。然后一直到 293 分钟,终于过了!所以现在就是 5 题,虽然这个时候罚时已经爆炸了,一道 E 题就 15 发罚时。五道题总共产生了 1152 分钟的雷霆罚时。
看了一下,封榜前五题最后一名是 22 名,一共大概是 32 个金。也就是说封榜的一个小时里,只要有不超过 9 个队伍到了 5 题就可以拿金。应该不会有队伍比我们罚时还高了吧。
比赛结束了。
火腿肠我们没吃,马斯卡彭毕竟就是一个小甜品,还是有点饿的。比赛结束到滚榜还有一个半小时,但是好像也不知道吃啥,索性去学校旁边的麦当劳凑合一口得了。
接下来就是激动人心的滚榜!煮波能金吗!
滚榜在图书馆,真的好气派。内蒙某校你看看人家。本来说的是每个队只能去一个人,到了会议室发现根本不查人,这回防君子不防小人了。
没座位了,我就站在最后面的中间等着拍照。郑轻真的好,打星队伍也发牌子,而且是可以上台领奖的那种。
这场滚榜好快,没有玩梗环节,平平淡淡吧,以及打星居然连照片都不放。我们这场队名叫「以上队伍成绩作废」,念到我们队的时候全场都笑了。
最后发现就是上位银,离金还有二十多名,那也就没啥遗憾的了。圆满离场!后来领奖是我上去领奖的,好像是我 XCPC 生涯里第一次在正式比赛里上台领奖,虽然也是打星,但是真的好酷好酷好酷。这种感觉真的好棒。
斩获人生第二块牌子!
领完牌子我们就直接走了,大家心情都不错。图书馆门口就是一个人工湖,里边有很多鱼和各种鸟,我们就顺便在学校里逛了一下,郑轻的校园真的好美,设施也很棒,还有很多标语。其实总是有点不相信它只是一所双非。
还有「输」出快乐人生。
接下来就打算直接回去休息了,明天早上直接赶早班机回学校。往门口走的路上在水群,看到居然给打星发了一血,以为我们居然还能拿一个一血。
发现前面 K 一血好像埋了个伏笔,事实上是,真正的 K 一血只是没有做更简单的 C 而已(哭)。另外后面了解到,这场河南省赛和北京市赛共用了一部分题目,我说咋这么难。
值得一提的是,这场 D 的题目名是,求求你不要再爬塔二了。赛后我把 D 的题面发给了我玩塔二的朋友,他的评价是。
然后就回酒店了。
下周见。
5.15 - ICPC 南昌邀请赛
这两天一直在北京,懒得回内蒙了,索性就直接飞南昌了。
晚上和队友会合才发现酒店订到 NCU 旁边了(),还好提前来了一天,紧急预定明天的酒店。路上回想了一下,可能是因为我们本来打算打下周的 CCPC 南昌的,所以就订到了下周南昌的承办校旁边,所以改日期的时候就忘记换酒店了。
到酒店发现免费给我们升到了江景房,外景确实棒。
5.16
旁边万象城简单吃了口午饭就去报到了。南昌怎么这么热,其实气温并不算特别高,但感觉加上湿度高(和北京或者内蒙相比),湿热湿热的很难受。
依旧,背景板照片。
接下来就是领物资,衣服感觉还挺好看的,除了有点像校服。南昌没有袋子,给的是一个双肩包,上面写着「ICPC JXNU」字样,感觉中规中矩?不过四个包加上四件衣服,真的有点不方便拿。
胸牌真的很丑。背面其实有很小的两行学校名字,但是你甚至不愿意在正面印上我的学校和名字。抛开这个,单说设计也有一种,十几年前的复古感。
接下来就是去机房打热身赛了。机房也非常挤,基本上就是人挤人,我们三个人坐在一起,必须要一直挨着才能坐得下。过道就是很窄的,必须要侧着身才能勉强通过的一道缝。
桌上的队伍信息牌简直丑爆了,电脑的壁纸也是。
经典学院老登审美风,坚定要求体现学校特色。
热身赛写了两道题就跑了,不知道为啥今天下午有点烦,可能是太热了,加上这些物资和环境有点失望,还是回酒店吹空调吧。
5.17
今天是正赛。顺带一提,这场内大来的是铁匠,早就久仰大名。
到机房了,赛前电脑上是一个写着队伍信息的图,说实话这个做得确实棒,好好看。不过好像不太好带手机进去,所以没拍照。下面偷了一张其他队伍拍的照片。
然后就开始比赛。
A 是签到。题意是,给你 cout << !(m % n)。
然后 WA 了,在 3 分钟的时候就喜提一发罚时。
回来看了一遍,发现输入格式是先输入
接下来去开 I。看起来像是一个求最小代价的板子 DP,然后火速写出来了状态定义和转移方程。但说实话我还没有在正式比赛里切过 DP,我的 DP 水平真的很差,所以还是不太相信自己的想法是正确的,只是抱着试一试的心态写一下而已,至少我觉得看起来挺对的。
写完发现过不了样例,接下来想到是不是可以把 DP 改成发送式的,改完然后过了。
然后就是 B。刚才我在写 I 的时候队友一直在研究 B,过完 I 的时候队友已经直接给出来我思路了。于是我就按着写,然后中间发现理解错了几次,一直改,大概两个小时的时候过了。
看了一眼榜单,这个时候正好比铁匠多了两分钟罚时,我们就在他们下面一名。不过他们先去开的 H,我们先开了 I。
接下来就去开 H 了。H 是一道博弈论,其实看到博弈论我就似了,从来没做出来过博弈论,也没有训练过博弈论的题。
接下来就是三个小时的讨论。直到封榜前其实已经过掉两百多队了,但是我确实没开出来,直到最后也只得出了平凡的情况的结论。中间其实我想过是不是一个 Nim 游戏,但是又是熟悉的,被我否掉了。
内大他们在封榜前就把 I 开出来了,在铜线上大概十名左右的位置。我们没开出来 H,所以遗憾离场。不想看滚榜了,直接改到了三点半的高铁,去高铁站了。
路上一直在和群友聊天,然后看到群里发的题解,发现 H 确实是 Nim 游戏。但是具体我也确实不会推,所以我没开出来也合理。问了一下 ChatGPT,它说这题有洛谷蓝的难度,但是能过两百多队,我觉得不太可能。群友说只有黄,我更相信这个难度,但是我又一次赛时没开出来黄题。
然后看到群友发了出题人预估难度和赛时榜单反映出来的难度,歪榜歪得没边了,基本除了前三题剩下全是歪的,神人榜单。
如何评价 ICPC 南昌。
注,图里一大堆的是桌上的队伍信息牌()。
内大拿铜了,说不羡慕当然是假的。
另外赛时看到了左边是 Nanani 姐姐,一个人一声不吭默默开掉六题,吓哭了。想到了去年辽宁省赛时候的我,也是单挑,也是一个多小时自己开掉五题,也是在被周围的队伍悄悄议论,现在好像又看到了曾经的自己。
我好菜啊。路上想到这里又开始有点难受,大一都快结束了但还是连邀请赛牌子都拿不到,始终都是无功而返吧。然后加上路上一直在拿电脑水群,加上司机开车有点猛,居然晕车了。我几乎从来不晕车的。
前段时间规划行程的时候,因为我们三个人周一都是满课,发现南昌没有合适的航班,所以就订到了明天早上武汉的航班,今天晚上就去武汉住。晚上和内大的另一队聚餐了,他们这次南昌和武汉两个队都拿了牌子,内蒙只有我没有牌子。还是有点羡慕以及难受的,当然后来也慢慢调节好了,没有影响特别久。
不知道怎么说。南昌的表现感觉是,意料之内的成绩,但是又有点,好像,很失望的感觉,可能是对自己失望吧。
下周东北赛,强度稍微低一点,希望能拿到牌子吧。
5.23 - CCPC 东北赛
周四周五两天运动会,不用上课,所以出来玩了两天。当然最近机票的燃油费都涨飞了,订机票的时候真的很肉疼,哎我草美国怎么这么坏。
直接上午到长春和队友会合吧。这次东北赛不在吉大校内,在吉大正元大厦。规划行程的时候发现隔壁就有一家全季,价格并没有很贵,就直接住这家了。
一个 fun fact 是,订酒店的时候发现,我直接从华住会上预定要比主办方给的协议价便宜不少,还能送早餐和升房,果断下单。
下午去签到。之前在 QQ 群里的时候就感觉这场东北赛很,神秘。今年没有东北邀请赛了,连省内高校的名额都缩水了不少,甚至直到比赛当天都没有一份正式的电子版参赛手册。
签到在正元大厦的一楼大厅,签到有很多人,但是只有那么两三张桌子在签到,整个大厅显得很拥挤。甚至由于志愿者工作效率有点低,加上现场没有有效的引导标识,大家都一窝蜂地挤在签到的桌子前面,我挤了好久才挤进去。
领到了选手物资。说实话真的有点,我不知道能不能说是失望,反正就是不太喜欢吧。可能很重要的一个原因就是选手衣服很丑,以及给的袋子是一个超大的劣质麻袋。笔也中规中矩,没有什么设计感,就是很普通的商业定制笔。就这个袋子和笔都给人一种,很廉价的感觉。
另外一堆广告上面还有一件衣服,但是我没穿所以没拍出来。
不过倒是,胸牌长得还可以,至少像是一个正经比赛的吧()。以及伴手礼是一个特别大的鼠标垫,其实也就是,中规中矩吧。
鼠标垫是卷起来的,展开的话就不太方便拿了,这里偷一张群友的图放上来吧。
哎不过至少,东北赛的教练服还可以,也是比较经典的灰色。虽然我觉得也不太好看,但还是比那个选手服好看不少吧。
另外我们去领教练物资的时候,除了签到表上面的签名,志愿者还把我领到了旁边的一个桌子,让我在学校旁边签我自己的名字。仔细看了一下,居然是给教练的「杰出执教奖(十年)」,这么牛。
然后就把这个牌子发给教练了()。
其实是第一次见这种奖牌,之前只见过给那种全国性的特别强的教练发的教练奖项。
今天白天好像是吉林省赛的正式赛(?),所以热身赛安排到了晚上六点到八点,吃完晚饭就直接去打热身赛了。
发现热身赛题目居然不是按难度排序的,先去开了过题最多的 E,是猜数交互。然后内大队长叫我去找群友面基,他说 C 才是真正的签到,我就把 C 交给队友了。
发现东北赛居然,内师去了两个队伍,我们去面了他们二队。在前瞻榜上看到他们 Rating 比我高不少,吓哭了。不过怎么上个学期我好像没见过他们,不会是跟我一届的吧,太恐怖了。
半个小时以后回去了,发现队友怎么还没开掉 C。据说是刚写完,我对着报错调了好几分钟才刚过编译,但是样例都过不了。我读了一下题发现
加训!
不过说,怎么热身赛都能歪榜的。
5.24
酒店就在场馆旁边的好处来了。九点开始比赛,八点五十才下楼,到赛场时间刚刚好。
看到三分钟的时候 IMNU 抢了一个 G 的一血,那说明这题应该很简单了()。看了一眼然后五分钟过了。
其实这个时候更多人是在开 H 的,所以接下来就去做 H。发现只需要维护一个字符集的前缀和就好了,也大概五分钟左右就过掉了。
接下来去看 C。其实看到的第一眼我就在想一个很显然的贪心,但是我不知道这样是不是对的,所以又被我否掉了。后面大概半个多小时都在和队友讨论其他思路,但是全都是一眼假,就又回去思考我原来的思路。我还是没办法确定它是不是对的,不过实在没招了,写了一下然后一发过了(笑)。
看了一眼榜,这个时候我们排名居然已经到 49 了,从来没到过这么高的排名。去算了一下银牌线在 52 左右,也就是说我们现在居然已经到银牌线上了。
继续开题。接下来过题最多的是 A 题,但是我们讨论了大概两个多小时,一直没有出来一个看起来很对的结论。我觉得看起来像 DP,写了一个状态出来,但是确实一直不会转移。
封榜的时候我们又去看了榜,突然发现怎么师大把 I 过了,这题这么简单吗(?)。是一个字符串填色题。但是封榜前只过了十个队,所以我们一直没去看这题。想了一下是不是直接贪心地填剩余数量最少的颜色即可,感觉找不到什么反例,就开始写。
代码也很好写,除了确实挺长的,以及细节有点多。大概封榜前十几分钟的时候写完了,但是写挂了(哭)。我确信我的思路是对的,但是一直到比赛结束也没调出来,所以最后就,三题结束战斗。
封榜前我们排名是 68,铜牌线是 105。一个小时总不可能有四十个队过掉第四题吧,所以大概率有铜了!
不过师大居然比我们多开一题,确实很震惊。
后面讲题发现 A 确实是 DP,但是我状态没写对。你确定这个,真的是 easy 吗。
接下来就是激动人心的滚榜!
虽然我觉得铜牌已经没什么悬念了。我们最后正式排名掉到了 77,也是在中位铜的位置,赢!
后来发现只要我们开出来 I 的话,就大概率可以银了,所以现在来看我们打得其实并不好。不过因为我确实没有过拿银牌的期望,本来期待的就是,拿到牌子就是赢。所以这次东北赛是好结局!
牌子相比其他比赛的来说稍微有点小,不过也挺好看的。你们这个银牌怎么铜铜的啊。
所以这场就是,我算法竞赛生涯里,真正意义上拿的第一块牌子!真的很激动,甚至其实赛时算出来我们在银牌线上的时候,我愣了一下。我知道是因为东北赛强度低,但也确实是我拿到的第一块牌子。
今天不难受,今天很开心!
现在真的应了这个队名了,「NOI 没拿到的牌子就在 CCPC 拿吧」。
5.30 - CCPC 福州邀请赛
说是福州邀请赛,但是其实是线上的,只是交给 FZU 主办而已。这场在中午十二点到下午五点,正好不用赛时吃午饭了,不过坏处就是,需要另外找一个监考志愿者来,至少我不想五个小时不上厕所。
比赛需要用 OMS 监考。昨天晚上我想打开电脑去打热身赛,突然想起来 OMS 不支持 Mac,所以今天才临时去取了一趟 Win 的电脑。还好看了一眼热身赛。
在图书馆预约了一个学术研讨室,设备架好就开始比赛了。不过说三个手机支架以及好几瓶水真沉啊。
A 是签到。一眼无脑搜子串,五分钟秒了。
接下来看到很多人都在开 H,我们就也去看 H 了。看到
接下来就是,无脑吃罚时()。我们从 32 分钟一直吃到了 92 分钟,其中包含七发罚时,吃爽了。
我们调这题的过程中,其中一位队友经常是,想到一类反例以及对应的解决方案之后就跟我说,这次肯定对。我就改完然后提交,然后 WA。中间我突然想到一个好玩的,跟他说,你是豆包吗。我现在给你最直白、最本质、最正确的答案,这次绝对是完全正确的。
感觉该换题了,所以就去看这个时候开出来第二多的 B 题。其实之前没有读其他题目,就一直在想一道题。我一读题发现这不就是最板子的二分贪心吗,会做了,于是就让队友继续去想 H,我十分钟写完一发过了。
这个时候队友讨论出来一个刚才没考虑到的 corner case,加上以后过了。
喜报,我们队已经通过了 3 题,吃到了惊人的 341 分钟罚时。这无疑体现了我们队伍巨大的胃口,未来一定都是赛时吃队友汉堡的好选手,震撼美味!
接下来是 D。我是异或和构造题废物,所以 D 的题面对我来说看起来还挺吓人的。大概就是给你一个 01 串,你需要构造一个非负整数序列,使得元素不重复,且通过一堆异或什么什么的运算得到的新字符串,与给定字符串的海明距离不超过 1。
队友也不太熟悉异或,这题因为涉及位运算,所以基本上就全程是我在自己想了。后面慢慢想到了其实就是一个贪心,无脑往一些位置的高位填 1 就行了。然后大概三小时出头的时候过了这题,现在已经是 4 题 619 罚时了,我是罚时大王。
其实这场福州和 NMCPC 的热身赛撞了,热身赛是下午三点到五点,所以打算预留一个小时去打热身赛。但是现在感觉半个多小时再开一题的可能性不太大,所以就直接跑了。
一个 fun fact。赛后一位队友问我,异或类的题目有没有通解。我的答案显然是没有,涉及到异或的题目太多了,每道题也不可能只有这么一个东西,只有多做题才能积累经验。
5.30 - NMCPC
这会其实热身赛已经开始了,但是内大队长说去年的热身赛是六道纯语法,十几分钟开完了,所以就没打算提前去,反正就是试机而已。
NMCPC 甚至没有可供选手或学生教练加入的赛事 QQ 群,有啥消息全都得找我教练问。我真的觉得 NM 的各种消息都非常非常闭塞,这个当然不是好事。所以前段时间我建了一个 NM XCPC 民间群,这样大家也可以共享一些消息吧。
进学校就感觉,这学校氛围怎么怪怪的,但是也说不上来哪里怪。
到了比赛场馆,门口同样摆了一个大背景板,虽然确实没见过这么丑的。
接下来就去领物资。我报了学校和队伍,然后志愿者给我拿了一个劣质硬纸袋。我惊讶地问了一句,就一个袋子吗,志愿者一脸惊讶地告诉我,对啊你们一个队伍肯定就是一个袋子啊。
行吧,毕竟也只是志愿者而已,拿到物资就行。打开袋子发现里边甚至就一份参赛手册,还挺寒酸的哈。
然后就上去机房打热身赛。到了机房发现,每个队伍的电脑前面是一个巨大的信息牌,可以完全挡住队伍区域的那种。又大又丑,感觉是能和上面 ICPC 南昌坐一桌的水平。
打开机子,发现是 Win,我就知道。不过本来也没有对 NMCPC 抱多大期望,Win 也不至于特别影响做题就是了。我写代码喜欢用 VS Code,但是找了半天也没找到。然后发现整台机子上就只有 Dev-C++、PyCharm、Eclipse 三个 IDE。他们学校的同学平时只有这种机子可以用吗,那也真是辛苦他们了。
Eclipse 我没用过,PyCharm 要配编译器,那就只有 Dev 可以用了。我甚至没办法在本地调试 C++ 17。
发现怎么连纸质题面都没有,不会明天也没有吧。
这次热身赛只有四题,前两题都是验证码难度,几分钟过了。后面两题显然不是语法题啊。放的是去年 ICPC 第二场网络赛的 E 和 H。
NMCPC 也在 PTA 上交题。不知道为什么,我们的机器对于 OMS 的显示质量特别差,基本上是特别费力才能看清楚文字的状态,但是切换到 Dev 上面又是正常的。
我去联系赛场志愿者,志愿者说联系一下老师。等了一会老师过来了,最开始说我屏幕上的文字能看清楚,言外之意就是不想管吧。我坚持要求解决这个问题,然后他就开始联系其他老师,他们电话里是用蒙语交流的,我听不懂。过了一会跟我说,让我按住 Ctrl 滑动鼠标滚轮,缩放页面。
然后他走过去看了一眼其他队伍,回来跟我说,都是这样的。我说我们刚打完 FJCPC,用的是同一套系统,我们就是正常的。这位老师坚称所有的都是这样的,不存在问题,缩放页面就是他所谓的解决方案。
事实上是,缩放页面后也不影响显示质量依然很差,还是相当多的锯齿状边缘和糊在一起的文字笔画,只是可以看清字了而已。他认为可以辨认出来是什么字就算是解决问题了,然后离开了。
气笑了。
后面其实也就没啥心情做后面两题了,环境测试完就走了。
我承认我在这种,所谓的不影响比赛的小问题上这么较真,可能看起来显得我很,刻薄。但是我还是认为,如果连最基本的设备都保障不了,那又何谈其他工作呢。
不得不承认的是,某些其他省份就是可以花更少的钱办出比贵校好得多的水平,事实就是我没有义务花着钱吃着史,还要夸一句史好吃。
关于所谓,都是这样的,试问您打过几场正经比赛吗。至少我没能在 CPC Finder 上找到贵校。
第一天的体验就已经烂到爆炸了,甚至有了一种,想退赛的心情。我确实也会有一些刻板印象吧,不是学历歧视,就只是,至少来这里的每一点体验都精准踩中了我对二本院校的刻板印象。当然我没有说我校很好的意思。
这下知道为什么不接受省外打星了,原来是家丑不可外扬。
队友先回去了,我去楼上机房找 szm,然后了解到他的键盘也不好用。顺便跟二中教练聊了几句,他们学校来了七个队,吓哭了。
和一些神秘小团体的群友吐槽,群友的评价是,野鸡比赛打着玩玩得了。
晚上教练发消息过来,通知明天要穿参赛服。
评价为不如我高中校服。真的必须要穿这个吗。
我决定赌一下,不穿了吧,把衣服带上,万一必须穿的话再换。我穿的还是去年 ICPC 武汉站的教练服,至少比这个参赛服好看多了。
另外今天热身赛的时候没有发现水和笔,不会明天也没有吧,还是明天自己带点水和笔过去吧。
5.31
今天是比赛日。
其实我有打比赛带一杯咖啡的习惯,今天早上当然也提前点了外卖。不过到学校了下车以后才发现,怎么手里空空的(),原来是忘带咖啡了。
倒是无所谓,不影响正常比赛就是了。
不过赛前没找到外榜链接,没办法给朋友们发了,虽然我觉得如果只看比赛表现的话,会是对我来说最精彩的比赛之一,有点遗憾。
到机房了,发现怎么没有纸质题面,不能真的正赛也没有纸质题面吧。问了志愿者,他说等下会发。虽然事实是一直到开赛前一分钟都没有看到要发题面的迹象。
另外发现今天也没有水,志愿者说中午会发餐,里边会有水。那我不会要渴两个小时吧。我说能不能先帮我送几瓶过来,志愿者说也可以,我要了三瓶。
接下来就是开始比赛了。
先去开 K,题意大概是给你一个
喜提一发罚时。
因为 Python 没有编译环节,所以 Python 里的 CE 就是类似 return 1 这样的,一个非正常返回值,所以 CE 也是要吃罚时的。
改掉了,又交了一发,然后又吃了一发罚时。
又发现了一个神人 typo,改完然后过了。
喜报!我们在第 8 分钟就拿到了 1 题 48 分钟的成绩,真是令人震撼的成绩!
气笑了。这个是真的难绷。
我把代码贴在这里吧,你也来看看()。下面是第一发罚时。
t = int(input())
for i in range(t):
n = int(input())
if n == 0: print('Unrated')
elif n < 1200: print('Newbie')
elif n < 1400: print('Pupil')
elif n < 1600: print('Specialist')
elif n < 1900: print('Expert')
elif n < 2100: print('Candidate Master')
elif n < 2300: print('Master')
elif n < 2400: print('Internartional Master')
elif n < 2600: print('Grandmaster')
elif n < 3000: print('International Grandmaster')
else: print('Legendary Grandmaster')
下面是第二发罚时。
t = int(input())
for i in range(t):
n = int(input())
if n == 0: print('Unrated')
elif n < 1200: print('Newbie')
elif n < 1400: print('Pupil')
elif n < 1600: print('Specialist')
elif n < 1900: print('Expert')
elif n < 2100: print('Candidate Master')
elif n < 2300: print('Master')
elif n < 2400: print('Internartional Master')
elif n < 2600: print('Grandmaster')
elif n < 3000: print('International Grandmaster')
else: print('Legendary Grandmaster')
看出来了吗。
:::info[揭晓答案!]
注意到,第一份代码的第 3 行,左括号是一个中文括号。
注意到,第二份代码的倒数第 4 行,International 多了一个 r。
:::
我再也不写 Python 了。
因为这两发罚时,这个时候我们甚至已经掉到银牌区了。
直到开始比赛大概三四分钟的时候,才开始慢慢吞吞地下发纸质题面。我们队的座位还比较靠后,发到我们队的时候我已经差点开出来一题了。
接下来就去开 D,这题也水,统计一下字符串的字符数量就好了,也是 Python 写的,一发过了。
接下来是 G。这题看着很恐怖啊,像是什么神秘数论题。但是我感觉,这个结论很奇怪啊,打了个表,发现只有
然后去做 A。我口胡了一个比较无脑的结论,但是看起来挺对的,直接写一个快速幂,一发过了。
去看了一眼榜,发现这个时候的所有队伍都不超过 4 题,包括打星的 szm,尽管他没掉出过总榜 rk1。
所以现在就是,半个小时开了 4 题,这个时候又回到正式队伍 rk3 了,还不错。应该签完到了,接下来就不知道要继续开哪道题了。
全读了一遍,感觉 J 比较可做。因为是内蒙的省赛,所以我还挺自信的,不至于看到没人开就不敢自己开题,当然这个时候也确实没有别的有人开过的题目了。
读完 J 发现特别简单,写了一个 min 和 max 就写完了,样例也能过。交了,然后 WA 了。
重新读了一遍题,发现题读假了,需要动态维护这个 min 和 max,有点不好搞啊。接下来的大概两个小时就一直在和队友讨论这题了,当然也就是一直在豆包模式,一直改一直 WA。
我还挺喜欢对拍的,经常会写。期间有想过要不要对拍,但是写了一半发现暴力很难写,没办法了。
中间发了餐,但是我们也没空吃,就一直在想题。内蒙的午餐包是我见过最寒酸的,就一个面包一盒牛奶。当然也可能是我比赛经历不太丰富导致的,以后多打打比赛()。
现在大概已经是三个半小时了,这个时候榜上还是没人开出 J 来,感觉做这题有点没前途,就换题去开 I 了。
这题是个计数题,最开始我不太想推式子,就没去考虑这题。但是现在场上过了最多人的就是这题了,只能硬着头皮做了。
不太会推式子,我感觉 DP 也能做,就打算试试。当然因为我的 DP 水平真的很差,所以其实我一直很犹豫,我不确定我是否想出来,以及我想的真的会是对的吗。但是感觉 DP 这个方向挺对的,还是试试吧。
因为这题所有变量都
出题人还算有良心(),这题的样例给的强度不算低。就至少对于计数题来说,已经到了那种过样例就说明交上去不太可能 WA 的程度了。
正确性应该没啥问题了,接下来就考虑能不能优化。因为最内层循环是一个 sum,我在考虑能不能写一个前缀和优化上去,优化掉一个
纸上推了一下,发现好像可行,过了一会写出来了,样例还是能过的。这个时候优化到了
优化掉了一些冗余的操作,然后把代码改成了更快的 C,交了一发发现还是 TLE 了。感觉优化常数这条路走不通,还是想想能不能继续优化吧。
这个时候已经封榜了。看了一眼榜单,发现内大的女队怎么在我上面一名,我已经掉到 rk6 了,吓哭了。
实在想不明白啊,二维的状态怎么可能通过一维的循环就跑出来,题目给的这种条件,也没有可能优化成一个线性 DP 吧。
好怪,打个表吧。我倒要看看到底怎么个事。
打完表以后突然意识到,只要
交!
过了!三个人不约而同地开始鼓掌了。
现在是大概四个半小时的时候,感觉也很难开出来其他题了,打算最后再尝试一下 J,最后也确实是无果而终。不过 5 题 423 罚时,金牌应该问题不大了吧。
这样的话,这次就算是我第二次在正式比赛里开出来 DP 题,也是第一次在正式比赛里写出 DP 优化,也是我第一次在封榜后开出来题,真的挺有成就感的。
那就,光荣离场!今天不遗憾。
出去和二队他们会合了,他们没有开出来 I 题。不过居然也推出来 DP 了,只是没想到优化和离线而已。不过他们平时没有训练过这部分内容,我觉得能想到这里已经很强了。
他们罚时不算高,4 题 203 罚时。封榜前他们在银牌区 rk3,那肯定就是毫无悬念地银了。
我们一起出去吃了个饭,回来刚好滚榜。激动人心的时刻到了!
可能是因为有多个组别的原因,滚榜的时候没有直接公布奖项,只念了排名。我们二队拿到了银牌区 rk5,居然只掉了两名。
接下来就是我们队。其实滚到我们队的时候,已经掉到 rk8 了。但是,通过一题!滚到上面,最终排名 rk5。以及,发现我们罚时已经炸成这样了,怎么还能是 5 题的 rk1()。
这样的话就是,金牌!
其实我一直不太明白捧杯的规则。跟群友聊了一下才知道,奖杯是颁发给校排前三名的队伍的。按照正常 XCPC 的规则,我们校排第三,所以这场捧杯了!
那就是我 OI / ACM 生涯里第一次拿金牌,也是第一次捧杯!
虽然是野鸡比赛,但是拿到一些成绩了还是很开心。
金牌线刚好就是五题。另外发现内大女队没开出来第五题,所以就是 4 题 85 罚时拿了银首,有点遗憾吧。
NMCPC 没有赛前拍照环节,但是滚榜的时候怎么会有照片呢?答案是,赛时抓拍。是怎么做到每个队伍的照片都这么丑的。
接下来就是颁奖。
说是颁奖,其实根本没有牌子。上去就是给你发一个「荣誉证书」,的壳子,里边甚至是空的。荣誉证书一定要有证书!
更逆天的来了。就这么几个壳子,下台的时候还要还回去,留着给下一组继续发。所以拿在手里的唯一作用就是拍个领奖的照片,就没了。据群友说这几个壳子也都是祖传的。
我抓紧时间拍了一张照片,留作珍贵影像了。
值得一提的是,内大一队的名字是「等我长小了也要打 OI」。念获奖队伍的时候,台上的老师选择了一种最逆天的读法,即,等我长小了也要打,(停顿)(思考)(得出结论),零一。
虽然没有牌子,但是有奖品啊!银牌是每人一个耳机,金牌是每人一个键盘。经鉴定,耳机是劣质有线耳机,键盘是劣质薄膜有线键盘。确实比较复古风哈。
淘宝搜了一下,都是小几十块钱的产品。
我说耳机键盘什么的,送这种劣质产品不如不送。有这点钱你定制几块奖牌比啥都强。
这下真是傻人遇到傻福了。我是傻人,主办方是傻福。
后面还有个优秀组织奖,这个倒是有一个巨大的奖牌,我可以把它当金牌抱回家里吗()。
答案当然是不能。
后面发现居然还有团体奖,就是按校排发奖了。不过我们学校居然没有团体奖吗。
之后跟其他队伍聊天的时候才知道,我们伟大的 NMCPC 的校排计算方式是,取每个学校排名前三的队伍,过题数和罚时求 sum。我们学校只有两个队,所以肯定比不过其他学校。
气笑了。
另外一个很神人的是,大概在比赛开始两个小时的时候,榜单上面的打星队突然也参与排名了,只是名字前面带个星号而已。后来交流了解到,可能是主办方发现 szm 太猛了,所以决定把打星队也改成正式队伍,临时加了一个中学组,甚至也按照一个独立的组别正常颁奖了。
szm 作为第一名上去领奖的时候,手里拿着一大把气球在挥舞()。感觉有点帅的,虽然没来得及拍照。
赛时改队伍类别的确实第一次见。让我们为其伟大的创新精神点赞!
接下来就结束了。
稍后把键盘卖了去定制一块奖牌吧()。感觉群友说的很对,反正这是本来就该属于自己的东西。
赛后我也还是在水群。从 szm 那里了解到,他们进场的时候监考老师说他们的草稿纸上有字。另外比赛的时候一直让大家安静,后面大家就变成小声交流了。
对不起我承认我攻击性有点强。
每个队伍交六百块钱,还有专门冠名的赞助商,一个 XCPC 比赛办成这样是不是有点太过分了。
野鸡比赛打着玩玩得了。
6.4
我们排在前面的几个队伍决定一起定制一些奖牌和奖杯,留作纪念。效率真的很高,今天就拿到了!
实至名归!