Algorithm学习笔记 --- 最长公共子序列(DP-动态规划实现)
2017-05-18 18:10
281 查看
状态转移方程为:
f[1][1] = same(1,1);
f[i,j] = max{f[i-1][j -1] + same(i,j),f[i-1,j],f[i,j-1]}
若上述公式中same(1,1)相同时,same(x,y)的值为1,否则为 0;
完整源码可以去我的GitHub下ACM项目里面下载。
主函数:
int main()
{
while(cin >> str1 >> str2)
{
int len1 = strlen(str1);
int len2 = strlen(str2);
cout << LCSL(len1, len2) << endl;
}
return 0;
}
测试用例:
f[1][1] = same(1,1);
f[i,j] = max{f[i-1][j -1] + same(i,j),f[i-1,j],f[i,j-1]}
若上述公式中same(1,1)相同时,same(x,y)的值为1,否则为 0;
完整源码可以去我的GitHub下ACM项目里面下载。
主函数:
int main()
{
while(cin >> str1 >> str2)
{
int len1 = strlen(str1);
int len2 = strlen(str2);
cout << LCSL(len1, len2) << endl;
}
return 0;
}
测试用例:
相关文章推荐
- 算法导论学习笔记(十二):动态规划(二):最长公共子序列(LCS)
- 数据结构学习笔记7-动态规划(最长公共子序列)
- 动态规划学习笔记2(最长公共子序列)
- 状态压缩动态规划(压缩状态DP)学习笔记
- 数据结构与算法学习笔记——动态规划的入门与编程实现
- 011-最长公共子序列-动态规划-《算法设计技巧与分析》M.H.A学习笔记
- Algorithm学习笔记 --- C语言实现二分查找
- 孙鑫VC学习笔记:第十七讲 用命名管道实现进程间的通信
- PetShop3.x学习笔记5-我读cocoboy79《MS PetShop 3.x 设计与实现——数据访问层》
- C#中实现事件的学习笔记
- 孙鑫VC学习笔记:第十七讲 用剪贴板实现进程间的通信
- 《面向对象基础:C++实现》学习笔记之四
- PetShop3.x学习笔记5-我读cocoboy79《MS PetShop 3.x 设计与实现——数据访问层》
- J2ME 3D学习笔记——实现简单的界面(附代码)
- 孙鑫VC学习笔记:第十五讲 增加互斥条件实现线程同步
- 孙鑫VC学习笔记:第十六讲 利用事件对象实现线程间的同步
- Community Server 2.0 学习笔记:如何实现在线人数?
- 设计模式学习笔记5:Singleton模式及其Delphi实现
- 《面向对象基础:C++实现》学习笔记之五
- PetShop3.x学习笔记10-购物车参考资料2-PetShop购物车实现