题目连接

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朴素版)相关推荐

  1. 1265:【例9.9】最长公共子序列 LCS 朴素做法O(n*2)

    分析 最长公共子序列的模板题,参考视频:最长公共子序列 - 动态规划: 如果第一个序列的第i个字符,与第二个序列的第j个字符相等时,则i,j这个点的dp值为左上角的dp值+1:否则为,该点上面那个点和 ...

  2. 动态规划算法解最长公共子序列LCS问题

    动态规划算法解LCS问题 作者 July 二零一零年十二月三十一日 本文参考:微软面试100题系列V0.1版第19.56题.算法导论.维基百科. 第一部分.什么是动态规划算法 ok,咱们先来了解下什么 ...

  3. 动态规划之最长公共子序列(LCS)

    最长公共子序列(LCS,Longest Common Subsequence).其定义是,一个序列 S ,如果分别是两个或多个已知序列的子序列,且是所有符合此条件序列中最长的,则 S 称为已知序列的最 ...

  4. 程序员编程艺术第十一章:最长公共子序列(LCS)问题

    程序员编程艺术第十一章:最长公共子序列(LCS)问题 0.前言 程序员编程艺术系列重新开始创作了(前十章,请参考程序员编程艺术第一~十章集锦与总结).回顾之前的前十章,有些代码是值得商榷的,因当时的代 ...

  5. 算法之最长公共子序列(LCS)问题

    算法课上老师留的作业,最长公共子序列LCS(Longest Common Subsequence)问题,首先看到这个问题感觉有点复杂,和最长公共子串不同,公共子序列并不要求元素相邻,看起来只有穷举才能 ...

  6. 最长公共子序列php,动态规划(最长公共子序列LCS)

    概念 求解决策过程最优化的结果 (可能有多个) 把多阶段过程转化为一系列单阶段过程,利用各阶段之间的关系,逐个求解 计算过程中会把结果都记录下,最终结果在记录中找到. 举例 求两个字符串的最长公共子序 ...

  7. python实现求解最长公共子序列LCS问题

    在实现论文<Automatically Generating Models for Botnet Detection>论文的算法中,用到了一个The longest commom subs ...

  8. 算法导论-----最长公共子序列LCS(动态规划)

    目录 一.概念梳理 二.最长公共子序列解决方案 方案1:蛮力搜索策略 方案2:动态规划策略 三.C代码实现 实现1 实现2(空间优化) 一.概念梳理   1. 子序列(subsequence): 一个 ...

  9. 动态规划表格法解决最长公共子序列(LCS)问题

    3.5 最长公共子序列(LCS) 前言:图片是博主自己画的,转载请注明出处哦 3.5.1 问题描述 最长公共子序列(Longest Common Subseuence,LCS)问题:给定两个字符串,求 ...

最新文章

  1. 微信小程序进度条样式_微信小程序组件progress进度条解读和分析
  2. 我在车间写代码:我的代码能省1个亿
  3. 为什么要把进程/线程绑定到特定cpu核上运行?(cpu core id coreIdx)opdevsdk_sys_bindThreadCoreId()
  4. asp.net控件开发基础(2)
  5. [css] 你有使用过font-size-adjust属性吗?说说它的作用是什么?
  6. 数据加密密钥 分发_分发加密软件可能违反法律
  7. html中怎么在横线中加字_传说中仓颉造字,汉字是怎么演变来的?
  8. mysql怎么精简_我这个mysql查询该如何精简,提高效率啊?
  9. python 后台系统 源码_这是我见过最好的博客系统!附源码(前端、后台、APP、小程序都有)...
  10. userService 用户 会员 系统设计 v2 q224 .doc
  11. Reportlab 表格样式问题
  12. 爬楼梯 java_爬楼梯问题java实现
  13. 征集国内操作系统项目列表 zz
  14. 计算机网络发展的第四阶段特点,计算机网络基础考试重点.doc
  15. 【2004-3】【平分核桃】
  16. 网页抓取软件Wget用法详解
  17. MayaDay3模型模块:插入循环边
  18. 《智慧工地单点解析系列(七)—— BIM管理》
  19. [874]python图片转字符串
  20. 沙县小吃炖罐做法 114沙县小吃配料网

热门文章

  1. centos7自带流量监控软件iftop
  2. 用存储过程生成实体类
  3. eclipse上的maven,添加依赖后无法自动下载相应的jar包
  4. PAT 1059 Prime Factors[难]
  5. Java多线程优化方法及使用方式
  6. 字符串加密解密函数 (C#) (转)
  7. Python3下载图像小工具
  8. 剑指offer-从尾到头打印链表03
  9. solr6.6.2之拼音联想
  10. Python 技巧总结