AcWing 897. 最长公共子序列(LCS朴素版)
题目连接
https://www.acwing.com/problem/content/899/
思路
我们定义f[i][j]f[i][j]f[i][j]表示的是a串中长度为i和b串长度为j的最长公共子序列长度,那么我们当前匹配到的a[i]
和b[j]
如果相等f[i][j]f[i][j]f[i][j]的值一定是从f[i−1][j−1]f[i-1][j-1]f[i−1][j−1]转移过来的,即f[i][j]=f[i−1][j−1]+1f[i][j]=f[i-1][j-1]+1f[i][j]=f[i−1][j−1]+1,否则的话我们就要从i-1
的长度和j-1
的长度中选择一个较好的情况即f[i][j]=max(f[i−1][j],f[i][j−1])f[i][j] = max(f[i-1][j],f[i][j-1])f[i][j]=max(f[i−1][j],f[i][j−1])
代码
#include<bits/stdc++.h>
using namespace std;const int N = 1e3+10;
int n,m;
int f[N][N];//f[i][j]表示的是a串中长度为i和b串长度为j的最长公共子序列长度
char a[N],b[N];int main()
{cin>>n>>m;cin>>(a+1)>>(b+1);for(int i = 1;i <= n; ++i)for(int j = 1;j <= m; ++j)if(a[i] == b[j]) f[i][j] = f[i-1][j-1] + 1;else f[i][j] = max(f[i-1][j],f[i][j-1]);cout<<f[n][m]<<endl;return 0;
}
AcWing 897. 最长公共子序列(LCS朴素版)相关推荐
- 1265:【例9.9】最长公共子序列 LCS 朴素做法O(n*2)
分析 最长公共子序列的模板题,参考视频:最长公共子序列 - 动态规划: 如果第一个序列的第i个字符,与第二个序列的第j个字符相等时,则i,j这个点的dp值为左上角的dp值+1:否则为,该点上面那个点和 ...
- 动态规划算法解最长公共子序列LCS问题
动态规划算法解LCS问题 作者 July 二零一零年十二月三十一日 本文参考:微软面试100题系列V0.1版第19.56题.算法导论.维基百科. 第一部分.什么是动态规划算法 ok,咱们先来了解下什么 ...
- 动态规划之最长公共子序列(LCS)
最长公共子序列(LCS,Longest Common Subsequence).其定义是,一个序列 S ,如果分别是两个或多个已知序列的子序列,且是所有符合此条件序列中最长的,则 S 称为已知序列的最 ...
- 程序员编程艺术第十一章:最长公共子序列(LCS)问题
程序员编程艺术第十一章:最长公共子序列(LCS)问题 0.前言 程序员编程艺术系列重新开始创作了(前十章,请参考程序员编程艺术第一~十章集锦与总结).回顾之前的前十章,有些代码是值得商榷的,因当时的代 ...
- 算法之最长公共子序列(LCS)问题
算法课上老师留的作业,最长公共子序列LCS(Longest Common Subsequence)问题,首先看到这个问题感觉有点复杂,和最长公共子串不同,公共子序列并不要求元素相邻,看起来只有穷举才能 ...
- 最长公共子序列php,动态规划(最长公共子序列LCS)
概念 求解决策过程最优化的结果 (可能有多个) 把多阶段过程转化为一系列单阶段过程,利用各阶段之间的关系,逐个求解 计算过程中会把结果都记录下,最终结果在记录中找到. 举例 求两个字符串的最长公共子序 ...
- python实现求解最长公共子序列LCS问题
在实现论文<Automatically Generating Models for Botnet Detection>论文的算法中,用到了一个The longest commom subs ...
- 算法导论-----最长公共子序列LCS(动态规划)
目录 一.概念梳理 二.最长公共子序列解决方案 方案1:蛮力搜索策略 方案2:动态规划策略 三.C代码实现 实现1 实现2(空间优化) 一.概念梳理 1. 子序列(subsequence): 一个 ...
- 动态规划表格法解决最长公共子序列(LCS)问题
3.5 最长公共子序列(LCS) 前言:图片是博主自己画的,转载请注明出处哦 3.5.1 问题描述 最长公共子序列(Longest Common Subseuence,LCS)问题:给定两个字符串,求 ...
最新文章
- 微信小程序进度条样式_微信小程序组件progress进度条解读和分析
- 我在车间写代码:我的代码能省1个亿
- 为什么要把进程/线程绑定到特定cpu核上运行?(cpu core id coreIdx)opdevsdk_sys_bindThreadCoreId()
- asp.net控件开发基础(2)
- [css] 你有使用过font-size-adjust属性吗?说说它的作用是什么?
- 数据加密密钥 分发_分发加密软件可能违反法律
- html中怎么在横线中加字_传说中仓颉造字,汉字是怎么演变来的?
- mysql怎么精简_我这个mysql查询该如何精简,提高效率啊?
- python 后台系统 源码_这是我见过最好的博客系统!附源码(前端、后台、APP、小程序都有)...
- userService 用户 会员 系统设计 v2 q224 .doc
- Reportlab 表格样式问题
- 爬楼梯 java_爬楼梯问题java实现
- 征集国内操作系统项目列表 zz
- 计算机网络发展的第四阶段特点,计算机网络基础考试重点.doc
- 【2004-3】【平分核桃】
- 网页抓取软件Wget用法详解
- MayaDay3模型模块:插入循环边
- 《智慧工地单点解析系列(七)—— BIM管理》
- [874]python图片转字符串
- 沙县小吃炖罐做法 114沙县小吃配料网