【动态规划】poj1458 common subsequence

来源:互联网 发布:unity3d 角色跳跃 编辑:程序博客网 时间:2024/04/30 00:25

一道相当经典的动态规划题目,由于以前做过的,所以还算顺手。
状态转移方程几乎可以在任何一本将动态规划的书中找到

#include<iostream>#include<cstring>using namespace std;int main(){char str1[2000],str2[2000];int common[500][500];int len1,len2;while(cin>>str1>>str2){len1=strlen(str1);len2=strlen(str2);for(int i=0;i<len1;i++){common[0][i]=0;common[i][0]=0;}for(int i=1;i<=len1;i++)for(int j=1;j<=len2;j++){if(str1[i-1]==str2[j-1])common[i][j]=common[i-1][j-1]+1;else if(common[i-1][j]>common[i][j-1])common[i][j]=common[i-1][j];elsecommon[i][j]=common[i][j-1];}cout<<common[len1][len2]<<endl;}return 0;}