Acwing897 最长公共子序列
Posted swiftac
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Acwing897 最长公共子序列相关的知识,希望对你有一定的参考价值。
题目大意:求两个字符串的最长公共子序列的长度。
分析:这是一个典型的dp入门题,LCS。
代码:
#include<bits/stdc++.h> using namespace std; const int maxn = 1e3+7; char a[maxn],b[maxn]; int dp[maxn][maxn]; void Dp() { int n = strlen(a); int m = strlen(b); for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { if (a[i] == b[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]); } } } int main() { int n, m; cin >> n >> m; cin >> a >> b; Dp(); cout << dp[n][m] << endl; return 0; }
以上是关于Acwing897 最长公共子序列的主要内容,如果未能解决你的问题,请参考以下文章