LCS 问题
来源:互联网 发布:百度知道和知乎 编辑:程序博客网 时间:2024/06/10 18:21
给定两个字符串s1s2...sn和t1t2...tn。
求出这两个字符串的最长的公共子序列的长度。字符串s1s2...sn的子序列指可以表示为si1si2...sim 的序列
1<=n<=m
最近想好好搞搞dp 先从最简单的问题一点点开始吧!!
其中dp[i][j]表示s1-si 和t1-tj 的最长公共子序列的长度
转移方程就是如果他们的i+1位相同那么 dp[i+1][j+1]=dp[i][j]+1
否则 就是分别看他们之前的串那个LCS大。
#include<cstdio>#include<iostream>#include<algorithm>#include<cstring>using namespace std;const int maxn=1005;int dp[maxn][maxn];int n,m;char s1[maxn],s2[maxn];void solve(){ memset(dp,0,sizeof(dp)); for(int i=0;i<n;i++) { for(int j=0;j<m;j++) { if(s1[i]==s2[j]) dp[i+1][j+1]=dp[i][j]+1; else dp[i+1][j+1]=max(dp[i][j+1],dp[i+1][j]); } } printf("%d\n",dp[n][m]);}int main(){ scanf("%d%d",&n,&m); getchar(); gets(s1); gets(s2); solve(); return 0;}
0 0
- LCS问题
- lcs问题
- LCS 问题
- LCS问题
- LCS 问题
- LCS问题
- 【codevs 1862】LCS问题+LCS的计数
- LCS问题算法
- TYVJ1029:LCS问题
- LCS问题,JAVA实现
- LCS 问题的解决办法
- LCS简单问题
- SDUTOJ. LCS问题.(DP)
- LCS相关问题
- LCS问题不全汇总
- 【DP,lcs问题】整理队形
- LCS问题的另一种解法
- POJ 2250 Compromise(LCS问题)
- Java for Web学习笔记(五八):Spring框架简介(7)bean的profile
- POJ1316简单枚举
- 一堆Offer怎么选?这样做就不纠结了
- Thrall’s Dream BFS 实现图之间的访问性
- DIY主机
- LCS 问题
- 第3章 外科手术队伍
- qt程序打包发布以及依赖
- 17.04.29 A Simple Problem
- 非递归实现输出全排列(或部分排列)
- 今天作业
- what's is build?
- Entity Framework Code First属性映射约定
- 一步一步理解线段树