题目链接
题意:用最小代价使不合法的括号序列合法。
解题报告:
合法的括号序列:
空序列合法
S合法 那么 (S)或 [S] 合法
A 合法, B 合法, 那么 AB 合法
我们定义 d[i][j] 为 把 原始序列 S中 S[i]~S[j] 变为合法序列 的最小代价
那么有三种情况:
单独的一个括号 d[i][i]=1
找到 括号 S[i] 和 S[j] 匹配 dp[i][j]=min(dp[i][j], dp[i+1][j-1])
把序列分割为两份,分别找代价,再合并 dp[i][j]=min(dp[i][j],dp[i][k]+dp[k+1][j]) i<=k < j