POJ 1458 Common Subsequence——LCS

来源:互联网 发布:蚌埠市人社局新域名 编辑:程序博客网 时间:2024/06/05 16:18
#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int maxn = 5000;char str1[maxn], str2[maxn];int n, m, dp[maxn][maxn];int main() {    while (~scanf("%s %s", str1 + 1, str2 + 1)) {        n = strlen(str1 + 1), m = strlen(str2 + 1);        dp[0][0] = dp[0][1] = dp[1][0] = 0;        for (int i = 1; i <= n; i++) {            for (int j = 1; j <= m; j++) {                if (str1[i] == str2[j]) {                    dp[i][j] = dp[i - 1][j - 1] + 1;                }                else {                    dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]);                }            }        }        printf("%d\n", dp[n][m]);    }    return 0;}