动态规划入门——Common Subsequence(最长公共子序列)

来源:互联网 发布:python windows开发 编辑:程序博客网 时间:2024/05/07 11:44

转载请注明出处:http://blog.csdn.net/a1dark

分析:经典模型、推出状态转移方程就行了、

#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;#define N 1001char str1[N];char str2[N];int dp[N][N];int main(){    while(scanf("%s%s",&str1,&str2)!=EOF){        int len1=strlen(str1);        int len2=strlen(str2);        memset(dp,0,sizeof(dp));        for(int i=1;i<=len1;i++){            for(int j=1;j<=len2;j++){                if(str1[i-1]==str2[j-1])                    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[len1][len2]);    }    return 0;}


原创粉丝点击