IAML's Blog

Find passion in coding

poj3267 The Cow Lexicon

最近把黑书中关于dp的部分粗略地看了一下,还是不会做dp的题目,泪奔~~~~~~~不过感觉就或多或少还是有的……

这题我一开始想到的状态表示方法是:d[i]表示0~i的字符串里面最少要删除的字符数。然后写了很久,debug了很久,还是WA。之后上discuss看了一下,发现其实只要逆着看状态,就好写很多。把d[i]表示从i到l-1的字符串里面最少要删除的字符数。

然后状态转移方程是:

f(i) = min{ d+f(k), f(i+1)+1 }

d:表为匹配单词而删的字符数(如果可以匹配);
k:表匹配后单词的下一个位置;
d+f(k):表保留第i个位置字符的情况;
f(i+1)+1:表不保留第i个位置字符的情况。

继续阅读