NOIP 2024 游记
前情提要:NOIP 前一天连喝了三杯咖啡,手一直在抖。
考点和 CSP 2022 以及 CSP 2024 一样在七中高新。
发现键盘无论怎样拉都拉不到桌子上,于是只能强行把绑键盘线的东西拆开了,然后就可以在桌子上敲键盘了。发现在相邻机位中间设了挡板,原因未知。
不知道为什么,和 CSP 一样起初一直打不开代码回收系统,过后不知道怎么回事就打开了。
先看了看大样例,发现 query 好像是道 ds(当时以为是树剖),edit 输入 4 行 01 串,有点诡异。
开场正序开题,想了一会儿 T1 发现好像可以直接贪,略微证明了一下感觉是对的。但是时间复杂度是双 log,过了一会儿发现可以用 bit 做到单 log。于是开写,写到一半发现好像可以 \(O(1)\) 维护 sum 值,于是改成了 \(O(n)\)。细节有点多挂了很多次大样例,浪费了很多时间。9:20 通过所有大样例。
开 T2,第一眼感觉有点难,于是去上了个厕所。回来认真思考后发现每一段的贡献独立,而每一段可以直接容斥计算。复杂度 \(O(m \log V)\)。代码很短,一遍过了大样例,时间 9:55。
认真读完了 T3 的题面,感觉不可做。转而去看 T4,最开始理解错题意了,感觉很唐,但是暴力代码一直过不去。之后发现了,开始认真思考。注意到了 \(\{a_l\dots a_r\}\) 的 LCA 深度相当于 \(l\) 到 \(r\) 相邻两点的 LCA 的深度最小值,于是问题转化到了序列上。有一个很显然的做法是二分 + 主席树,感觉 5e5,2s 的数据范围能过,于是直接开写,时间 10:40。
写了一大堆,调过大样例已经 11:50 了,发现最后一个大样例要跑 6s。于是开始卡常,最终 5e5 极限数据跑了 3.2s,但是 1e5 的点应该没问题,感觉卡不动了,时间 12:20。
回去看 T3,感觉第一档部分分都不是很好写(当时没看到链的部分分),所以就没打 T3 暴力,肉眼检查了 T1T2T4,没发现什么问题。然后就交了。
最终没有挂分:\(100+100+0+64=264\)。
//dzzfjldyqqwsxdhrdhcyxll