[TyvjP1050] 最长公共子序列(DP)


传送门

f[i][j] 表示第 1 个串匹配到第 i 位,第 2 个串匹配到第 j 位的答案。

f[i][j] = max(f[i 1][j], f[i][j 1])            (a[i] != b[j])

f[i][j] = max(f[i 1][j], f[i][j 1], f[i 1][j 1] + 1)  (a[i] == b[j])

——代码

1 #include <cstdio> 2 #include <cstring> 3 #include <iostream> 4 5 using std::max; 6 7 int n, m, f[2001][2001]; 8 char a[2001] = , b[2001] = ; 9 10 int main() 11
View Code



上一篇:[POJ2446] Chessboard(二分图最大匹配-匈牙利算法)

下一篇:[luoguP2184] 贪婪大陆(树状数组)


DP
Copyright © 2002-2019 k262电脑网 www.k262.cn 皖ICP备2020016292号
温馨提示:部分文章图片数据来源与网络,仅供参考!版权归原作者所有,如有侵权请联系删除!QQ:251442993 热门搜索 网站地图