小圆抱抱 | 【题解】P11833 [省选联考 2025] 推箱子
Starrykiller · · 题解
赛时第一反应是什么都不会,然后瞎写了个暴力过了所有样例,得到了下述观察。
观察
对于两个要求
i,j ,若t_i\le t_j ,则应当先满足要求i ,再满足要求j 。证明
若
i 操作不会影响到j ,则是简单的:设i 操作用时a ,j 操作用时b ,显然a\le t_i\land a+b\le t_j 比a+b\le t_i\land b\le t_j 更易满足。否则将
j 移动到不会被i 影响的位置(容易证明这一定让它离目标点更近了),转化成上述情况。\square
基于上述观察,不难写出暴力:维护一个全局的时间戳
观察到暴力之所以慢,是因为每次可能将连续的一长段做了平移。(我们称
于是使用 ODT 维护连续段即可。每次移动的时候至多分裂一次,然后暴力往后(前)找下一段是否被影响了。这样这些所有被暴力找到的段会被合并称一段,所以复杂度是
小圆抱抱/kel