HNCPC 2026 游记
SRTS
·
2026-10-25 20:17:12
·
生活·游记
第一次写游记 ( ^▽^ )!
前言
首先,感谢学校给我们机会体验 2026 HNCPC(湖南大学生计算机程序设计竞赛)的 ACM 程序设计竞赛)。
其次,感谢母亲全程陪同参赛!
这次真是一份全新的体验!
Day -2
晚上放学回家,拿出“准考证”,发现我们 The F.H.S. of Changsha(KXC Campus)竟然是通过“XJ 中学”的名义报名参加的。
于是,我们队伍的名称是:XJ 中学三队 !(队员:clx201022、SRTS、Ycy8696)
非常期待后一天的旅程。
Day -1
早上 7:50 到学校集合,八点出头发车,乘坐大巴一路从长沙到吉首,大概下午两点左右到的。
路程好远,听歌都有点听腻了。在车上睡一会儿,反正那么就慢慢地熬过去了。
漫长的 6 小时啊!
细节:大巴车下错收费站了,经过收费站之后直接掉头重新上高速,呵呵。
等到了酒店,早已疲惫不堪。后来去试机,除了那个水得没边的 \text{A + B Problem} ,后面的试机题目一点思路都没有,整个脑子都是一片空白。还好只是试机。(后来问 Deepseek,说一个我和队友有点思路的是一道组合数学的题,另一道要用什么 NTT 之类的?被这个连 NOI 都不考的东西吓哭了)
其实,试机的时候,写代码的队友没发现 \text{A + B Problem} 是多测,然后差点就吃了一发罚时。
除此之外,实际的时候没带草稿纸,又想思考后面的问题,于是拿出手机,在画图软件上打草稿。真费劲 qwq。
午餐和晚餐都非常丰盛,都是些山珍海味(什么鸡鸭鱼、鲍鱼、甲鱼、牛肉、鱿鱼等等),很昂贵的样子,但是嘴巴倒是爽上了。
晚上自由活动,玩了会儿游戏,听着歌,睡了。
只有一个床,队友睡姿不太好,导致我只好打地铺,晚上醒了五六次,精神不太好。
Day 1
虽然精神没有那么好,但是为了比赛,肯定是得振奋起来的。
考室。一堆大学生,好像只看到了几个打星赛的队伍在我们考场。
我们组三个队员 A,B,C 。我是队员 B ,和队员 C 的实力相当,但队长(后文“队长”亦称作“队员”) A 的实力比我们高出一截。
A 题。我们组队员 A 快速发现是签到题,于是让我和队员 C 先开后面的题。
翻译完 B 题之后,好像没什么思路。接着开 C。队员 C 说有点像之前的某道题,但不会写。我突然觉得可能是 DP,于是赶紧尝试写一下朴素 DP。C 去看后面的题去了。
然后,我写了一个 O(n^2) 的暴力 DP。在此期间,A 一直在写 A 题,挂了一两次。不过后面他翻到 I 题,说他可以秒了,结果真把 I 切了。接着我把 C 的朴素 DP 写在电脑上,看后面队员 A 或 C 能不能尝试帮我优化。
后来看了眼排行榜,发现做 E 和 F 的人比较多。于是 A 和 C 去看 E,F 题。
我把朴素 DP 打完之后,一遍就过了样例,还是挺愉悦的!我把希望给到 A ,想让他帮忙优化我的朴素 DP,就能又过一道题了!
结果这个命运直接给我 cos(cosplay)三角函数——暴跌。我问了两三遍,让队员 A 给我优化,结果每一遍的结果都是——“你自己想 / 你自己优化”。
我真的会谢!我要是自己会优化就不会让你优化了。
E 题后来被 A 切了。随后是 F。
F 题算是整场比赛我印象最深的一道题。这道题让我感受到 ACM / ICPC 赛制和 OI 赛制最大的区别,展示着我们队的团结。
等我写完 C 的暴力之后,队员 $C$ 把他的研究成果形式化地给到我。说看我能不能想到一个数据结构,可以快速对矩阵中每个格子统计其左上角与它颜色相同的点的个数。
我思考了一会儿,我想不到。我突然灵光一现,想到扫描线疑似可以?但 $C$ 说从一列到新的一列之后,行的结果不能复用。
结果,我被“带偏”了,发现扫描线“好像”不行。然后,我和队员 $C$ 又想了线段树、树上启发式合并、STL map 等等发现都不好维护。
扫描线真的不行……吗?可是我真的有预感,扫描线可以!我静下心,忘掉之前那个所谓的“扫描线不行”,冷静分析。(我发现别人讲的时候真的很容易被带偏!)我们先 $O(mn)$ 地枚举颜色。对于每个固定的颜色,仿照之前的扫描线思想,把它们离线下来并排好序,用树状数组 / 线段树处理 y 方向的个数,最后单点查个前缀和即可。
真的可以!
于是,这个 F 先经 $A$ 转化数学式子,再由 $C$ 进一步转化、形式化,最终由我($B$)想一个“数据结构”优化统计,在 $O(mn \log n)$ 的复杂度内做出来了!
成功爽切!这就是团结的力量!看到 AC 的那一刻,我们整个队都激动万分,欣喜若狂。
说到这里还要感谢我们的教练 [ysuperman](https://www.luogu.com.cn/user/72525),组内分享的时候给我分配了“扫描线”课件,让我对扫描线更加熟悉、深刻,最终才得以合作切掉 F。
至此,我们发现,目前看过的题目中“签到题”都被切掉了。
接下来继续开题。
我们想出 F 题的正解思路之后,队员 $C$ 去写 F 的代码了。我和 $A$ 开后面的题。翻到 G 题,$A$ 一眼说跳了,往后到 H。我看着那个 G 的样例解释图片,感觉有点像数学(是我最爱的数学呀!),于是产生了一种好奇的想法:要不试一试 G?$A$ 说让我试一试 G,他去看后面的题。
然后发现这个 G 真的是计算几何。队员 $A$ 让我现场(我带了《算法竞赛》(罗勇军著))自学计算几何。
?
!
~~欢迎收看大型纪录片《0 基础萌新蒟蒻挑战计算几何然后被打得落花流水》。~~
《从入门到入土》
最开始,我还真的一本正经地学起来,从浮点误差的修正到点、直线、向量的结构体表示,再到圆与线段的交点……
突然发现,这个扇形和圆弧需要用一个圆和三个半平面表示,分别是扇形两条半径、扇形除圆心外的两个顶点所在直线(用于判断圆弧)。
然后就可知,这对于初学 1ms 的计算几何萌新蒟蒻我,无疑是极其雷霆、极其炸裂的!
首先,书上没有我需要的结构体定义,也没有“扇形”一章节;其次,这个代码也是非常之难写的。
即使我已经想出来方法(口糊。~~可能不对,勿喷~~):判断矩形顶点是否在扇形内、判断矩形线段与扇形是否有至少两个交点。但是,我觉得是不可做的。
我觉得真的可惜了,考场上尝试 0 基础自学计算几何,结果浪费那么多时间,什么都没做出来。。。
我自学 G 题的时候,队员 $C$ 在用 $A$ 做小黄鸭调试,做出了 F。没想到小黄鸭调试法这么有用!这波必须给到一个夯!
渐渐地,时间过得好快,还没怎么想题就仅剩最后一两个小时了。
我们看到榜单中 B 和 C 做的人比较多。于是希望在最后的时间看能不能争取做出一道以提升排名。
等我们把 B 想得差不多的时候,发现疑似是数位 DP。结果我们都不擅长写数位 DP,而且剩下的时间不多了,不熟练的情况下很难写完 + 调完。
最后半小时。听取队员 $A$ 的建议,我们把最后的希望给到了 C 题。结果最后什么都没有研究出来。。。
比赛,结束啦!
感觉前面挺悠闲的,为屏幕上闪过的一个绿色方框欢呼,也曾为了一道题调动全组的思维。后面那一个小时可能是有那么一点点慌了,忽然一下子冒出了好多事情,手忙脚乱。
最终,我们组切了 $4$ 道题,获得了 $4$ 个气球(虽然不知道后面气球被我们组其他人搞到哪里去了,反正有一个不见了,正好我就没分到我们组的气球,有点小遗憾)。
不过,对我来说,根据我们组的实力来看,$4$ 个题已经是一个很满意的结果了!(~~大佬们不要嫌弃,因为我们组也只有这样的水平~~)在所有大学的队伍(除开在我们前面的打星队),排在第三十名出头。
比赛结束后,我们前往吉首大学立心食堂就餐。三荤一素只要 12 元?!至少比我们学校便宜。说是大学食堂没有要求必须在那里吃,大学生可以选择在外面吃。如果食堂搞不好或者太贵,大家都出去吃,食堂就赚不到钱了。是么?原来如此啊。开眼界了。
餐后,带着考场发的一袋面包和之前自己买的没吃完的零食,坐上了返程的大巴。
一场快乐的吉首之旅加上一个漂亮的结果,还有一份全新的人生新体验,这趟旅程,值了!
~~我不太会写这种文章,可能有点像流水账,不喜勿喷。~~