求最长连续公共字串
状态转移方程就直接看代码吧;
#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <string>
#include <cstring>
using namespace std;
string s1,s2;
int dp[1100][1100];
int main()
{
while (cin>>s1>>s2)
{
memset(dp,0,sizeof(dp));
for (int i=1; i<=s1.length(); ++i)
{
for (int j=1; j<=s2.length(); ++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]);
}
}
cout<<dp[s1.length()][s2.length()]<<endl;
}
}