【题解】CF1066F Yet another 2D Walking

难度:\(2/10\)

容易发现在走 \(\max\) 值相等的同一层时,一定只有两种不同的做法:

  • 从左上角向右走到右上,然后再向下走到右下。
  • 从右下角向上走到右上,然后再向左走到左上。

容易证明其余情况一定都不优。

然后问题就简单了:因为只能从 \(\max\) 小的地方走到 \(\max\) 大的地方,所以考虑直接区间 dp:维护出每一个 \(\max\) 值相同的连续段 \(l_i,r_i\),然后设 \(f_{i,0/1}\) 表示当前走了前 \(i\) 个连续段,当前位于左上角 / 右下角,最小所需的花费是多少。转移是容易的。

总时间复杂度为 \(O(n\log n)\),瓶颈在于排序,换个基排可以做到理论 \(O(n)\) 时间复杂度。

posted @ 2026-02-03 17:07  0103abc  阅读(1)  评论(0)    收藏  举报