如果你 WA on #8,而且报错信息为 On line 1 column 2, read 9, expected 8,那么试试这组数据:
Input:
aaab
b
2 10 1 10 10
Output:
7
显然是先执行 3 次 delete,再执行 1 次 copy。
在进行 DP 前加入:
for(int i = 0; i <= n; i ++) dp[0][i] = i * a[1] - (i == n);
即可 AC。
原因是在 DP 时没有遍历到 dp[0][1], dp[0][2], …,而恰好转移时需要用到,所以导致错误。