| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
其实考的应该就是lcs我仔细想了一下, 觉得和lcs几乎一样, 只有一个地方是trick
但通过修改循环位置就可以解决
这是lcs的dp过程(pascal):
for i:=1 to n do
for j:=1 to m do D[i,j]:=max(D[i-1,j],D[i,j-1],D[i-1,j-1]+ord(a[i]=b[j]));
这是修正后的:
for i:=1 to n do
for j:=i to m do D[i,j]:=max(D[i-1,j],D[i,j-1],D[i-1,j-1]+ord(a[i]=b[j]));
其实就是更改了j的起始位置, 为避免了 a[i]=a[j](j<i)的情况, 因为这是不成立的.
譬如下面的人列举的 aac(n=3) acde(m=4)的情况
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator