[TyvjP1050] 最长公共子序列(DP)
2024-08-26 06:04:26
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])
——代码
#include <cstdio>
#include <cstring>
#include <iostream> using std::max; int n, m, f[][];
char a[] = {''}, b[] = {''}; int main()
{
int i, j;
scanf("%s %s", a + , b + );
n = strlen(a);
m = strlen(b);
for(i = ; i < n; i++)
for(j = ; j < m; j++)
if(a[i] == b[j]) f[i][j] = max(f[i - ][j - ] + , max(f[i - ][j], f[i][j - ]));
else f[i][j] = max(f[i - ][j], f[i][j - ]);
printf("%d", f[n - ][m - ]);
return ;
}
最新文章
- React的使用与JSX的转换
- MyBatis的mapper
- 网上搜集了点资料,学web的人互相分享共同进步吧(php编码的好习惯必须养成)
- 在CentOS 6.6下安装与配置mysql
- python学习-day14:集合,函数,格式化
- 保护企业的Word文档
- linux文件夹操作(及模糊搜索)
- 第七篇、CSS3新增属性
- C++中的explicitkeyword
- Example013操作样式
- http请求参数中包含特殊字符的严重后果,比如:#
- Java 计算年龄
- IE中iframe标签显示在DIV之上的问题解决方案
- SVG矢量图学习实例
- 数据结构c++实现代码-链表
- 使用git pull提示refusing to merge unrelated histories
- tp3.2sql改变时间格式
- Redis学习系列六ZSet(有序列表)及Redis数据结构的过期
- JS模块化写法(转)
- 025-du命令查看文件大小
热门文章
- 牛客小白月赛5-D-阶乘(求n内每个数的阶乘相乘后尾数为0的个数)
- windows deintall 12c client
- 174 Dungeon Game 地下城游戏
- [转]mysql日志详细解析
- 使用 Suricata 进行入侵监控(一个简单小例子访问百度)
- sdut2784&;cf 126b Good Luck!(next数组)
- angular.module 参数的意思
- MYSQL5.7 忘记ROOT密码/初始化ROOT密码
- 掌握Spark机器学习库-01
- 使用Jenkins进行android项目的自动构建(1)