CCSP2024 游记

“n 方过百万,暴力碾标算”,其此之谓乎?

  • 第一次参加 CCSP
  • 收获一个个人铜奖
  • 收获一个团体金奖
  • 第一次参加国家级会议(CNCC)

2024-10-22 Day 0

早上

早上哼哧哼哧地起床,刷牙洗脸完了之后去桃李吃了个早饭。说来惭愧,这是我这个学期第三次吃早饭。约好了跟同学一起打车,结果忘了“紫荆二十号楼”在哪里,于是行径路线:桃李园 - C 楼南侧 - 北体西侧 - 北体南侧 - 紫荆雕塑园 - 紫荆快递柜东侧 - 紫荆 20 号楼;本来可以桃李园 - 紫荆园 - 紫荆 20 号楼的,我硬是多走了大概 2km?幸亏最后是赶上了。结果司机后备箱装不下,本来准备拒载我们;最后在我们软磨硬泡下,我抱着我的箱子,坐在后排。

打车只打到北大东门,最后我们是坐地铁去的北京南站。到高铁站之后居然还有半个多小时才发车,于是就买了杯星巴克。也是让我体会到上流的感觉了。星巴克这取单口令还真有意思,都是四字词。那就祝我“大步向前”迈向爆零吧!(x

星巴克的取单口令

星巴克咖啡

上高铁之后一直在写计组报告,连续工作 5h,幸亏我下车的时候刚好写完,这 DDL 真的是压得我喘不过气来。毕竟我是第一次当 DDL 战士,还有点不熟练。

车上的风景

车上的风景 2

到达金华的时候,已经是下午 14:15 了。

到达金华

下午

感觉金华有一种小县城的感觉,再加上天上飘着小雨,朦朦胧胧。路上的机动车,很少;街上也没有什么人。这与北京给我的印象大不一样。

路上

某塔(旅游景点)

酒店的环境挺好。同样的价钱在北京你能住这么好的酒店?

酒店外观

房间内观

到酒店之后收拾了一下东西,休息了一下,然后集中在一起说了些明天参赛时的注意事项:

  • 比赛手机一定要关机,不要把手机带入考场,也不要把手机以开机状态带入厕所这前车之鉴肯定指的不是 IOI2024 中国队作弊的事情,对吧?
  • 不允许使用蓝牙设备(包括键盘、鼠标、耳机)。

之后去浙江师范大学签了到,但是没有试机。因为试机不在 Day 0,而是在 Day 1比赛当天,开赛前 1h 试机是什么操作?

浙江师范大学校门

CCSP 参赛证

与梦中情校合影留念。

清华大学食水最深

晚上

晚上爽吃。

2024-10-23 Day 1

比赛前

早上 7:00 起床的,然后下楼吃了早饭。之后就打车去浙江师范大学了。

CCSP 旗帜飘扬

试机的时候,我发现我打不了中文。我用 Linux 确实用得少,还以为是自己的问题,也就没在意。

比赛中

我的开题顺序:T1(ioqueue) - T4(tracker) - T3(shell) - T2(tree),没做 T5(numaScheduler)。为什么我要在题目后面还加上题目的英文名称呢?因为排行榜(和 OJ 相同)上显示的题目顺序,与下发的 PDF 上的,不一样

T1(ioqueue)

十分钟仔细认真地看完了题面,觉得这题面不知道在说些什么,根本没表述清楚,随即用五分钟口胡了一个贪心;然后看了看榜,发现大家几乎都过了。于是我就写了一发,然后果不其然——也过了。

大概三个小时之后,我注意到赛时答疑区多了一个关于这题的通告:

“请你设计一个系统,对于到达的任务(包含任务到达时间,以及完成对应任务所需的时间),将其分发到两个队列。” 在本文指的是:任务到达时已经按照此时的状态(当前队列完成时间长短)进行了提交(任务总是在到达时向着较小的那个队列进行发射)。

这已经把答案写脸上了,就差公布代码了(

赛后小粉兔一直在喷这题,因为贪心是错误的。他一直 30 分,原因就是他写的是(本应是)正解的 DP,然后在座位上怀疑人生了几个小时。最后将错就错写了个错误的贪心,然后过了。

T4(tracker)

看了看 T2 和 T3,是两个数据结构题,于是先开 T4,是道大模拟。从早上 9:20 写到下午 14:20,终于过了样例。于是交了一发:

第一次提交 tracker

然后盯着我这 14.8 KB,350 行的代码逐行看了 20 分钟,遂放弃,转头去看数据结构题了。

不是哥们,计算机网络原理软件实验的代码量一共也就 400 行啊。

T3(shell)

我看排行榜上的第三题过的人很多,所以先做的这题。

幸亏我提前 git clone 了 OI-wiki。然后发现 OI-wiki 上的带修莫队例题就是这题的操作 1 和操作 2?

P1903 [国家集训队] 数颜色 / 维护队列

题目大意:给你一个序列,MM 个操作,有两种操作:

  1. 修改序列上某一位的数字
  2. 询问区间 [l,r][l, r] 中数字的种类数(多个相同的数字只算一个)

shell 题目描述

这不是一模一样?我改了一下输入格式,就把代码交上去了。然后看着这个部分分,心想着,60 分应该稳了

shell 的子任务

交了一发,居然有 80?你告诉我不管操作 3 也能有 80?那你这测试点 16-20 是在干啥啊?操作 3 的数量 < 10%,0 也算是 < 10% 是吧?

然后就没管这题了。其实最后 2h 是有想过把这 20 分拿到的。因为对于操作 3,维护一个树状数组,离线先读入所有操作然后把插入操作影响到的后面的所有操作中的数组下标偏移一下就好了,这应该不难写。不过最后还是没写。

拿到 80 分之后,我才发现,我怎么得的分,是排行榜上的第二题而不是第三题?

T2(tree)

原来大家都过的题是这道题啊?

给定一棵大小为 NN 的,带点权的有根树,现在有 MM 次操作:

  1. 询问以 uu 为根的子树中,点权严格大于 xx 的个数;
  2. uu 的点权修改为 xx
  3. 添加一个编号为当前树/森林中节点数 +1 的节点,其父节点为 uu,点权为 xx
  4. 删除编号为 uu 与父亲的连边,并且使得 uu 变为新的根,并且输出以 uu 为根的最大点权节点权重;
  5. 询问以 uu 为根的子树中,最小点权的最小节点编号;
  6. 将包含 uu 的树旋转为以 uu 为根节点,保持树上所有元素的连接性不变。

本题要求在线查询修改,每一轮的每一个输入(除每一轮第一个输入的操作编号和截止第一轮输入之前的)都需要异或上一轮的输出才能获得真正的输入。

对所有的 wiw_i 满足 wi109,N2105,M2105w_i \le 10^9, N \le 2 \cdot 10^5, M \le 2 \cdot 10^5保证树是随机生成的

乍一看是一个 LCT 加上某些奇特的树形数据结构的一看我就不会的题。因为即使树是随机的,如果操作不是随机的,那本质上出题人还是可以造一些极端数据来卡人的(比如扫把、链之类的)。我还专门在赛时答疑区,问了这题的操作是否随机。第一次问题,可能负责赛时答疑的人都没看懂,答非所问的。

tree 操作是否随机

答案是不随机。那这题该怎么做呢?

  • 如果暴力求子树 rank,那每次询问根节点就会 T。
  • 如果链反转每次都处理,那如果添加操作不随机,即使原树是随机的,但如果添加的点形成了一条链,那也会 T。

算了,还是写一发暴力吧,万一呢。于是,我就用一个最坏 O(nm)O(nm) 的做法,过了这道 1n,m21051 \le n, m \le 2\cdot10^5 的题。

难怪大家都过了这题,原来是这样啊。

T5(numaScheduler)

是个大模拟,按照题目说的去做就行,但是其中需要支持的有一个操作是无源无汇求最小割。队里有同学说,暴力枚举也能得 90 分

乱搞

最后闲得无聊,在电脑里新建了一个文件并且往里面随机写入了 100 MB 的文本。然后我使用了倍增的办法,Ctrl+C、Ctrl+V,一个文件变两个,两个变四个……不知道我按了多少次 Ctrl+V,电脑就卡了。

空余磁盘空间大概是 70 GB 左右,应该是被我全部写满了的缘故(

比赛后

电脑卡了之后我举手询问监考老师能否重启电脑,得到的回复是禁止重启电脑,于是我就提前半个小时交卷了。

然后在机房这层楼看见了 Yau 相关的 poster。

无处不在的 Yau

考试结束后,大家一起吃了烧烤作为宵夜,吐槽了这次的 CCSP:

“你们 T1 的贪心!都是假的!考虑 0 1 30 这组数据。”

“2024年CCF大学生计算机系统与程序设计竞赛”,确实没说是算法竞赛,所以暴力过了也很正常,对吧?

“为什么我前 6 个小时只有 30 + 60 + 0 + 0 + 0?花了 6 个小时,终于让自己的智商降低了。

“已经开始期待明天的赛题分析环节了。”

“我 treap 套 ETT,但是 T 了。”

“tree 那题,我写了个替罪羊树套 ETT,结果 T 了;你告诉我暴力过了?”

“tracker 那题,我从早上十一点写到晚上八点半。”

“树随机。”

“但操作不随机。”

“我把 OI-wiki 上所有可能的平衡树板子都试了一遍,但是全 T 了;最后半个小时,我破罐子破摔交了发暴力,结果过了?”

“我 tree 那题交了 100 遍,把所有次数都用完了。”

“tree 的每个测试点,我都对过一次。”

Fuyuki 说,他 U 盘里带了很多歌,但是在 Linux 上没找到音乐播放器。后来,有一个同学告诉他:Firefox 浏览器可以播放音频(

新知识 get

其他

不是哥们,原来大家的 Linux 都打不了中文啊(因为提供的环境没有拼音输入法),看来不是我自己不会用 Linux 的问题。大家发赛时答疑都用的英文,笑死我了;回答的技术团队倒是用的中文(

考了 12h,所以中饭、晚饭都包了,但我也没吃多少,感觉也不好吃。中途上了 10~15 次厕所。

题没想法,上厕所;题没调出来,上厕所;题过了,还是上厕所。

但是上厕所总计用时肯定不超过一个小时;也就是说,我在那个垃圾的没靠背的四脚板凳上坐了至少 11 个小时。教室内甚至开了暖气,热死我了,坐得我屁股疼。

总而言之,参赛体验极差。

2024-10-24 Day 2

上午

前往横店

早上 6:30 起床洗了个澡,7:00 去吃自助早饭。今天专门找了个靠窗的位置。真上流啊。

上流早餐

然后就坐地铁,从某条线的首站坐到了终点站,花了 17 块钱,原因是这条线路是城际轨道交通——我们从一个市跑到了另一个市。小粉兔和 StudyingFather 说带着 CCSP 的牌子可以免费乘车。但我懒。地铁(感觉用“轻轨”这个词来描述可能更合适?)上的景色还是可以的。

路上的景色

下地铁之后扑面而来的是 CNCC 的各种引导标语。

CNCC 接站标语

随即乘坐大巴到了横店圆明新园进行 CNCC 的签到。你别说,这地方还真挺气派的。

横店圆明新园正门

签到获得 CNCC 参会证,并获得 CCF 防暑套装一套。这帽子还行。

CNCC 参会证

CCF 帽子

参加 CNCC

进园区之后跟着 Fuyuki 和小粉兔一起在园区里面溜达。后来看到好多人在开车,于是我们也交了押金交了钱,解锁了一辆。我们开着园区内的车子到处转悠。

比如我们看到了清华大学计算机系 诚聘海内外高层次人才,莫名有种百团大战的感觉。

清华大学计算机系

过了大概半个小时之后,先后有两个路人告诉我们这车不需要交钱。于是我们开到了还车的地方,准备还车还押金之后再以免费的身份开这辆车。

我是真没想到,我们还车后,问了聚集在一起的志愿者,他们说他们也不知道怎么以免费的身份开这个车(因为它现在是锁住的)。为此我还给客服打了电话。结果,聊天的过程中,另一个志愿者把我们停下来的车开走了

而这个钱,是按照“车”为单位计算的,也就是说,你租了,这一天你都可以用这辆车;还了之后你也能重新借这辆车。但是你如果换另一辆车,那你得重新交钱。只体验了 30 分钟的车,就这么没了。

游览车

update(2024.10.25): 180 块钱在第二天自动退回来了。

退钱

为了吃免费的午饭,我还去“海岳开襟”听了一个报告,是关于 AI 与电影发展的。我在结束前的 30min 到了场馆内;主要是因为,报告结束后,工作人员会在这里分发午饭。我提前来的话,就能保证最先吃到午饭(

于是吃到了 CNCC 明星盒饭

CNCC 明星盒饭

吃饭的时候四处望了望,这儿真气派啊,不愧是拍电影的地方。

海岳开襟

差不多 13:00 了,该去参加颁奖典礼了!

下午

颁奖环节

颁奖的时候看到了一些很有特色的个人热点名称。

个人热点名称

  • 第一个发言的是孙凝晖院士,但他说的话我一句也没听清。
  • 第二个发言的是郑纬民院士,他说的话我听清了,但现在我一句都不记得。
  • 然后是公布获奖名单。
  • 个人第一名发言。
  • 团体第一名发言(团体总分为该校得分前五名总分)。

个人喜提铜奖。没啥好说的,因为我本来就菜,也只会写暴力。大模拟写倒是写了,但是调不对,也是我能力问题。也许,明年,争取拿个银奖?

清华第一

清华今年重回团体总分第一。想到去年的场景就很搞笑:

中山大学:感谢清华大学、北京大学没来参赛,把团体第一让给了我们。

实际上去年清华大学是参赛了的,但出现了一些状况,具体情况过于狗血,不便多说。

今年的前 5 个小时里,清华的同学得分都很低;大家都在后半程发力,最后完成总分上的反超,夺得团体第一。

听领队说,领队都坐在一个房间里,其他领队都在嘲讽:清华呢,清华呢,怎么前 xxx 名一个清华的都没有啊。

接下来就是最激动人心的环节了——赛题分析。

赛题分析

还有脸进行赛题分析?真给 SJTU 丢脸吧。

CCSP 竞赛题目解析

T2(tree):我写的是块状链表...(照着 PPT 读)...我没怎么仔细想,但是各种花式平衡树应该都可以过

T4(tracker):这题...(照着 PPT 读)...你只需要仔细维护种子、客户端和两者之间的关系。

我请问“仔细维护”是要多仔细?我也知道这道大模拟需要仔细啊!

然后他照着 PPT 读,速速结束了 T4 的“赛题解析”,开始十分细致地讲 T5。

哦,合计着你其实没做 T4,只做了 T5 啊。

到处乱逛

这儿的景还真挺美。

景 1

景 2

凯旋门

入驻酒店

入驻第二个酒店。

小县城

有种小县城的感觉,周围都是工地、荒地,中间矗立着一座酒店。

晚上

晚上吃了好吃的,还喝了杯蜜雪冰城。

爽。

吃饭吃到尽兴之处,我们开始在饭桌上开盒出题人。

出题人

高中时参加过 NOIP2015 提高、NOIP2016 提高,分别获得一次省三、一次省二。

不是,这哥们水平还不如我呢?我好歹也是初三省三、高一省一啊!我还拿过一次 APIO 铜牌。

知乎上有一个问题:“如何评价 2024 CCF CCSP 大学生计算机系统与程序设计竞赛?”,结果这个知乎的提问人是他。

个人简介:“来自上海东川路职业学校的CS学生,不搞 ACM,不是OIer”。这种人怎么敢出题的?

知乎个人简介

2024-10-25 Day 3

早上

早上 8:00 的闹钟,但是醒了之后把它延到了 9:00;然后洗漱后 9:30 下楼吃早饭。没睡到 10:00 的原因是,我没搞清楚自助早餐什么时候截止;我感觉 9:30 应该还会有,但 10:00 听起来不太像是一般人吃早饭的时间,所以就起来了。

然后一直写游记到 12:30。

最后,中午和 Fuyuki 去吃了 65 块钱一位的烧烤+火锅自助,全是合成肉,不好吃。

这儿真是一个小县城吧。酒店旁边居然有个“高尔夫练习场”,还有个露天泳池。

高尔夫练习场

露天泳池

下午/晚上

收拾行李准备走了。

在高铁站看到的标语。但是,我真的还会再来吗?

欢迎再来

在高铁上学习编译原理,写作业 ing。

总结

很久没有打 OI 了,也很久没有参加 ACM 了,但我坚信,我所向往的 OI/ACM 肯定不是这个样子。

话说回来,也没人说这次比赛是 OI/ACM 吧(笑

别人可是 CCF 大学生计算机系统与程序设计竞赛,根本没提“算法”二字。

但无论如何,这样的出题态度,以及“第一题是假题,第二题暴力可拿满分”,是任何人都无法接受的吧?