poj 1458 Common Subsequence_最长公共子串
题意:略
求最长公共子串
#include<iostream> #include<cstdio> #include<string> using namespace std; int dp[500][500]; int max(int a,int b) { return a>b?a:b; } int main() { int i,j,a,b; char s1[400],s2[400]; while(scanf("%s%s",s1,s2)!=EOF) { memset(dp,0,sizeof(dp)); a=strlen(s1); b=strlen(s2); for(i=1;i<=a;i++) { for(j=1;j<=b;j++) { if(s1[i-1]==s2[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[a][b]); } return 0; }
不怕路长,只怕心老.