CSP-2025 游记 - Xiao_Xiao_Yu
Xiao_Xiao_Yu · · 生活·游记
大家好,这里是 Xiao_Xiao_Yu(或者你可能听过我的另一个名字叫做 BoredYukolin),大概是敝人的首篇游记吧,说实在的敝人真的不擅长写这种东西,但是也并不打算写给别人看,只是给自己留作纪念,免得日后退役了连一点留痕都没有。
因为已经是年级顶到上限的老人了,选择继续走 OI 的路线只能孤注一掷,至少本场 CSP-S 已经发挥得问心无愧了,或者说有一点不甘但已经看淡了。
T1
贪心是很好想到的,原本打算走自然的路线即在贪心过程中就判断方案是否非法,但敲的过程中感觉到某些
然而不知道敝人的脑回路当时是什么状态,维护动态插入和查询最值居然想到的是用 set,然后发现小样例没过,调试了一下发现自己连 set 会去重都没意识到,然后就改成了 multiset,然后就输出正确了,但是发现跑得出奇的慢,这时敝人才终于意识到其实直接用堆就可以了,于是欢快地修改成了 priority_queue 以及相应的成员函数。
然后,敝人从开考 *s.begin() 改成 s.top 后就变成取最大值了。好在最后检查是否有漏掉注释输出时发现小样例莫名奇妙又挂了,遂改正。
T2
看到所有乡镇都能和任意城市修路且花费全都不同的时候以为自己读错题了——然后自己瞎猜了一个题意,而不是重新读,直到看到
注意到这个耐人寻味的数据范围后,很自然冒出了二进制枚举乡镇的想法。但是一算
- 先求出不考虑乡镇的 MST 然后尝试替换一些边减少花费;
- 使用一些诡异的建图 trick 来把乡镇城市化的代价融入求 MST 的过程;
- 用一些玄学手段魔改 Kruskal 或许可以把复杂度从
O(2^kmlogm) 降为O((m+2^kn)logm) 。
然而均无成果,逐渐暴躁,在演草纸上胡算一通发现用这个朴素的复杂度其实就能水
结果是 T3 写了一半发现码量有一点大,因为前车之鉴本着保险的心态扭回去把 T2 老老实实写完。最后总感觉少了点什么,发现这题没有多测而且是求最小代价,于是加了一个卡时骗分,预估分数增加 eps。
事后在 LA 中看到有人说并查集没开到
T3
字符串一直是敝人的弱项,除了字符串哈希就不会几个算法,不过看完题目感觉题意至少很好理解,入手点也挺多的。一度觉得这题十分像是要用到 KMP 或者 AC 自动机,但都没有复习,只能从其他的方面硬钻。
盯了一会第一个小样例,不知怎么就发现了一个性质:把
于是爆敲了半天的哈希,中间又扭回去把 T2 写了后再回来时间也还算充裕,也继续写完了,虽然这个思路是最坏情况下
然后就是相信大家都知道的锅了:敝人没有注意到题目并未保证 '\0',又因为直接取了
T4
没什么好多说的,一开始以为能写
你知道吗
- 敝人走错了考场,而且直到自己坐的位置真正的主人来撞座了才发现,还导致走到正确考场后又和周围人确认了一遍自己没有再走错。
后记
-
100+84+50+8=242
写于