HBOI 2025 游记

Day -2

HB 省选模拟线下选手,因为是模拟赛所以打的很随便。

开场读了近 20min T1 题意才知道在说什么。发现 T1 暴力是简单的,诶是不是可以记忆化啊?不会证明复杂度捏,先写了再说。发现随机数据下跑得很快,那就不管了。

T2 字符串题,所以先开 T3。首先有一个比较朴素的 \(O(n^3)\) 暴力,然后应该可以换根。但是由于我写的合并非常麻烦,导致一时想不清楚该怎么换。最终花了差不多 1h 打了一个带求逆元的 \(O(n^2\log n)\) 换根。本机怎么要跑 6s,你无敌了。只能相信评测机。

这个时候差不多 3h 了。观察了一下 T2 前三个大样例,诶 ☝🤓 答案好像 \(\le 4\),我会分类讨论!写到 4h 过了前三个样例。那是不是可以开摆了。

找不到块怎么开,于是回去检查。感觉 T2 的第四个样例似乎可以跑。那测一下。诶我怎么 T 了,哦我没分清楚 \(n,Q\)。诶我怎么 WA 了,浏览了一下大样例怎么还有 \(>4\) 的答案。诶怎么只剩 20min 了那我不炸了,只能相信数据了。

最后 80+15+45=140,感谢 T2 不杀之恩。但是 T3 最终还是没能卡过去,看来大常数 \(O(n^2\log n)\)\(5000\) 还是太勉强了。

Day -1

打板子+摆了一天。

感觉很紧张啊。NOIP 发挥比较差,翻盘的压力比较大。

Day 1

昨天晚上睡得还行,开场的时候还比较有精神。直接进行一个题面的通读。T1 是什么东西?感觉一眼秒不掉啊。T2 怎么是 DAG 上的问题,那完全不会了。T3 感觉非常神秘,那就不看了。

冷静了一下,感觉至少不会在 T1 就放特别难的题,D1T1 还是得做出来的。

发现有一个值域 \(\le n\) 的 B 性质,感觉可能比较可做。应该先要对每个数刻画一下合法的条件。对一个数而言能选到肯定直接选,其他的数可以分为必定大于该数和必定小于该数。然后为了让这个数尽量处在中间那前面那两个东西之差肯定要最小,小力分讨一下就可以 \(O(nV)\) 了,感觉有不少分。

先写了一手验证了一下正确性。感觉很对啊!那所有东西的变化量也是比较好维护的,只会有 \(O(n)\) 个。那就可以做 \(O(V+n\log n)\) 了。似乎答案是一段区间,但是我不确定是不是真的,由于模拟赛的教训也不敢乱猜结论了。但是是不是还可以离散化,这样就对完了!那很牛了。不到 1h 就通过了所有样例。感觉状态还可以啊。

开 T2。之前好像问过学长关于 DAG 可达性的问题,回答是不能做 polylog 只能 bitset。那就考虑一些根号或者除以 \(\omega\) 的东西。想了 20min 左右发现我是不是应该先想特殊性质。发现不会做 A,不会做 B,不会做 A+B,不会做 A+C。哦我好像会 D 了。哦 D 也带修改那不会了。花了 1h 确认了我确实不会做任何特殊性质的事实,成功将【不知道有没有优势】转化为了【绝对没有优势】!打完暴力赶紧 skip 掉了。

然后开 T3,赶紧把暴力写掉了。这个时候还剩不到 2h,那就大力冲 T3 了。感觉 ABC 性质加一起是好写的,就是把一个链拆一下。但是分很少,那等会再写算了。

感觉特殊性质应该会比 \(O(n^2)\) 好想一些,那就先开 A+C 性质了。一开始以为是递归到连通块,以联通块内的 \(\min\) 为根做之类的东西,写了一下发现完全假掉了。于是又推了一下性质,发现与子树之间必须要分开,与根节点相邻的点要排在子树排列内的最前或最后。写+调了很久才过掉样例。

最后决定试图 rush 一下 C 性质。首先对于每个连通块似乎可以分开处理,然后可以以一种区间和区间之间包含或不交的诡异形式构造出字典序最小的一组解。在还剩 10min 时极限通过了样例 5,没测其他样例没算分,检查完文件名和输入输出就差不多该结束了。最极限的一集。赛后看了一下最多能过 13 个点。

期望得分差不多是 100+20+52。希望不会挂。

Day 2

感觉昨天打的还行。今天可以稳健一点。

但是推箱子是什么鬼?两道计数是什么鬼?T2 还是 timeline 状物,这么牛的。

感觉不切 D2T1 很可能被直接区分掉,今天还是不能放松。感觉对 \(t\) 排序应该是最优的选择,那先排序一手在做。然后直接贪心地推箱子似乎是不劣的。跟样例解释的想法对不上,那就是样例解释在骗人!我直接自信开写!但是在写的过程中犯了一些小错误,大概在 45min 时暴力过了所有的点。

感觉数据不会特别弱,还是要写正解。感觉长得就像是经典【使用你喜欢的数据结构维护】环节。一开始想着直接上平衡树维护,但是我不喜欢平衡树。但感觉考场上肯定打不出来。于是仔细观察了一下暴力究竟是在干什么。似乎减去下标之后会好维护很多,只用写一颗线段树即可。

于是写了一颗支持区间覆盖和二分的线段树,其中出现了例如 Pushup 时没取 max,二分时忘记 Pushdown 幽默错误。最后花了 2h 才调过去。

剩下两题对我来说感觉不是很可做。那接下来要做的就是尽量骗分了。感觉 T3 暴力更好打,于是先开了 T3。

打完 8 分暴力想多拿点分。感觉递增的性质看起来就很有规律,我会打表!先固定前 \(n-1\) 个位置调整第 \(n\) 个位置,发现规律是每次增加 \(1\)。那是不是每个位置的增加量都是固定的?测了一下发现确实比较固定,除了第一个位置从 \(1\)\(2\) 的时候会有一点偏差。但我也只能相信只有这一种特殊情况了。每个位置的增加量可以简单递推,\(p_i=i\) 的答案也可以递推。那是不是对了!发现确实能过样例,但是不知道有没有新的特殊情况。希望是对的吧。

然后开 T2。对着 A 性质调了一个小时,拼尽全力无法战胜(赛后发现好像是最小树形图在乱求),应该直接不管任何复杂度硬冲的。最后拼了个 \(w_i\) 不相同的容斥。遗憾离场了。

最终得分 100+12+28,当然这时最好情况。希望 T2 T3 别挂啊。

upd:挂分了,100+20+52+100+4+28=304。

posted @ 2025-03-11 10:54  LiuLianLL  阅读(9)  评论(1)    收藏  举报