当前位置: 首页 > news >正文

C++ 动态规划 线性DP 最长共同子序列

给定两个长度分别为 N
和 M
的字符串 A
和 B
,求既是 A
的子序列又是 B
的子序列的字符串长度最长是多少。

输入格式
第一行包含两个整数 N
和 M

第二行包含一个长度为 N
的字符串,表示字符串 A

第三行包含一个长度为 M
的字符串,表示字符串 B

字符串均由小写字母构成。

输出格式
输出一个整数,表示最大长度。

数据范围
1≤N,M≤1000
输入样例:
4 5
acbd
abedc
输出样例:
3
在这里插入图片描述

#include <iostream>
#include <algorithm>using namespace std;const int N = 1010;
char a[N], b[N];
int f[N][N];
int n, m;int main ()
{cin>>n>>m;scanf("%s%s", a + 1, b + 1);for(int i = 1; i <= n; i ++ )for(int j = 1; j <= m; j ++ ){f[i][j] = max(f[i - 1][j], f[i][j - 1]);if(a[i] == b[j])f[i][j] = max(f[i][j], f[i - 1][j - 1] + 1);}cout<<f[n][m]<<endl;return 0;
}
http://www.lryc.cn/news/293282.html

相关文章:

  • 【备战蓝桥杯】——循环结构终篇
  • 为什么说Python语法简单?
  • 【HarmonyOS应用开发】ArkUI 开发框架-进阶篇-管理组件状态(九)
  • EF Core入门例子(以SqLite为数据库)
  • centos7 安装nginx
  • 【Linux Day14 UDP网络通讯】
  • 指针的深入了解6
  • PHP之PDO_MYSQL扩展安装步骤
  • 【pytorch】nn.linear 中为什么是y=xA^T+b
  • vite打包原理
  • 导出pdf 加密、加水印、加页脚
  • Flutter 仿抖音 TikTok 上下滑动 播放视频
  • 计算机网络——网络层(2)
  • 01-16Maven-SpringBoot入门
  • 微信小程序(二十七)列表渲染改变量名
  • k8s之安装部署及kuboard发布应用
  • JProfiler for Mac:提升性能和诊断问题的终极工具
  • 力扣202-快乐数
  • 牛客寒假训练营H题
  • ubuntu22.04@laptop 常用基础环境安装
  • Linux第41步_移植ST公司uboot的第2步_修改网络驱动_USB OTG设备树_LCD驱动_以及编译和烧写测试
  • 瑞芯微1808模型转换(onnx到rknn)环境配置过程
  • 测试ASP.NET Core项目调用EasyCaching的基本用法(InMemory)
  • 机器学习系列-2 线性回归训练损失
  • spring-boot-actuator 服务监控
  • 窥探向量乘矩阵的存内计算原理—基于向量乘矩阵的存内计算
  • Python flask 表单详解
  • 【Tomcat与网络3】Tomcat的整体架构
  • k8s中cert-manager管理https证书
  • 如何搭建私有云盘SeaFile并实现远程访问本地文件资料