QOJ.ac

QOJ

Type: Editorial

Status: Open

Posted by: wangmarui

Posted at: 2026-02-23 00:31:49

Last updated: 2026-02-23 00:33:53

Back to Problem

qoj17045 题解

延后处理 trick。

考虑区间 dp。

朴素的两维区间 dp 不太好做,我们考虑增加一维,即 $f_{l,r,x}$ 表示区间 $[l,r]$ 已经完成了匹配,未来后面将会有 $x$ 个已经有的数与 $a_{r}$ 进行匹配(即距离区间匹配完毕还剩下 $x$ 个 $a_r$),由于 $\ge k$ 个相同的数即可消除,因此第三维是 $O(k)$ 级别的。

那么转移比较简单,我们进行以下分讨:

  1. 直接暴力加数加到 $x$ 个数,即 $f_{l,r,x} \gets f_{l,r-1,0} + \max(0,k-x-1)$。
  2. 根据传统的区间 dp,我们枚举断点 $i \in [l,r)$,若 $c_i = c_r$,则有转移 $f_{l,r,x} = \min(f_{l,r,x}, f_{l,i,\min(x+1,k-1)} + f_{i+1,r-1,0})$。

时间复杂度为 $O(n^3k)$。

Comments

avatar
wangmarui
1