题解:AT_abc435_f [ABC435F] Cat exercise

前言

本文同步自洛谷专栏,题目传送门

前置知识:笛卡尔树,模板题

分析

转化一下形式:

  • 可以将当前点的所在区间删去一个前缀或一个后缀。

  • 前往当前点所在区间的最大值点(除了当前点),并仅保留该侧区间。

  • 最大化移动距离。

则利用第一点,我们可以通过完全删除左或右侧实现定向移动。

下面给出一个最优性结论

设当前在 \(i\) 处,则应有 \(i\) 为当前区间最大值点,\(j,k\) 在当前区间中且在 \(i\) 的同侧,不妨设 \(i<j,k\),再不妨设 \(P_j<P_k\)

则从 \(i\) 直接移动到 \(j\) 一定不优于先移动到 \(k\) 再移动到 \(j\)

结论是容易证明的,\(j-i\le k-i+|j-k|\)

\(i\) 左侧首个大于 \(P_i\) 的位置为 \(L_i\),右侧为 \(R_i\),记 \(fa_i\)\(L_i,R_i\) 中,\(P\) 较小者。

注:要求是首个是因为有移向最大值点的限制与最优性结论。

则至少存在一种最优方案,满足任意一次移动都为:\(fa_i\) 移向 \(i\),证明可以应用最优性结论。

发现形式其实是一棵笛卡尔树,建出然后树上 dp 即可。

时空复杂度均为 \(O(n)\)

实现

赛时记录

posted @ 2026-06-05 10:13  Wxb2010  阅读(9)  评论(0)    收藏  举报