POJ - 3267 The Cow Lexicon解题报告

来源:互联网 发布:sql查询成绩相同语句 编辑:程序博客网 时间:2024/05/17 02:56

题目大意:
给你w个标准字符串(2-600) 以及长度为l(2-300)的一个目标字符串,问你至少要给该目标字符串删除多少个字符,才能分割成这些标准字符串。

思路:
一开始一点思路也没有,只能猜到是dp,然后这道题就一直闲置下来了,后来把寒假dp训练专题都做了一遍,然后回来又看这道题,开始有一点思路了。

dp建立:设a[i]为以目标字符串第i个字符结尾的子串至少需要删除a[i]个字符。
递推公式(文字描述):
关于第i+1个字符,有两种处理方法,第一种就是删除,这时,a[i+1]=min{a[j]+i-j};第二种就是不删,此时找出所有以字符v[i+1]结尾的标准字符串,然后分别在目标字符串中去除这些字符串(相同的字符抵消,不同的在目标字符串中删除),并记录删除了多少个不相同的字符x[j]。此时,a[i+1]=min{a[t]+x[j]} 。
边界条件:a[1]=1;


1 0
原创粉丝点击