很自然想到区间 DP. 设 $Dp[i][j]$ 表示把区间 $[i, j]$ 内的套娃合并成一个所需要的代价,那么有: $Dp[i][i] = 0$ $Dp[i][j] = min\{Dp[i][k] + Dp[k + 1][j] + Merge([i, k], [k + 1, j])\} (i \le k < j)$ 于是问题在于算 $Merge([a, b], [c, d])$. 我们考虑一下:区间 $[a, b]$ 内的哪些套娃是需要打开的: 是不是 $[a, b]$ 中所有大于 $[c…