0%

zroi-8-07

区间DP

以区间作为DP状态的一类DP

例题:洛谷P4302

题解:
每一次折叠的是连续的一段,最终求的是折叠后的最小值
对于这种"把子串折叠 使最终长度最小"的题目,可以想到是区间dp
状态设计为dp[i][j]是i到j可以折叠成的最短字符串长度
容易想到假如 从 i 到 k (ikj,klen)(i \le k \le j, k | len) 的子串重复后可以得到 [i - j], 那么
dp[l, r]可以被dp[l, k] + c[k - l + 1] + 2更新
这里 c[i] 指 i 十进制的位数,2是指折叠标记的两个括号

欢迎关注我的其它发布渠道