mini notes

競技プログラミングの解法メモを残していきます。

第二回 アルゴリズム実技検定 K - 括弧

問題:K - Parentheses

解答:Submission #12875879 - 第二回 アルゴリズム実技検定

解法:dp[i][j] :i文字目までで、「'('の個数」 - 「')'の個数」 = j の場合であるときに費やした最小コスト、でdpする。

dp[i][j]からの遷移を考える。
次の文字が'('の場合、変更なし⇒dp[i+1][j+1]、削除⇒+d[i]してdp[i][j]、変更⇒+c[i]してdp[i][j-1]に遷移する。次の文字が')'の場合も同様。

途中でjがマイナスになる場合はその時点で"対応がとれていない"括弧列になるため、j ≧ 0の範囲のみでdpする。