1 #include<iostream> 2 #include<string.h> 3 #include<string> 4 using namespace std; 5 int maxlen[102][102]; 6 void lsc(string a,string b){ 7 for(int i=1;i<=a.length();i++){ 8 for(int j=1;j<=b.length();j++){ 9 if(a[i-1]==b[j-1]) 10 maxlen[i][j]=maxlen[i-1][j-1]+1; 11 else 12 if(maxlen[i-1][j]>=maxlen[i][j-1]) 13 maxlen[i][j]=maxlen[i-1][j]; 14 else 15 maxlen[i][j]=maxlen[i][j-1]; 16 } 17 } 18 } 19 int main(){ 20 string s1,s2; 21 int num=1; 22 while(getline(cin,s1)){ 23 memset(maxlen,0x0,sizeof(maxlen)); 24 if(s1=="#") 25 break; 26 getline(cin,s2); 27 lsc(s1,s2); 28 cout<<"Case #"<<num++<<": you can visit at most "<<maxlen[s1.length()][s2.length()]<<" cities."<<endl; 29 } 30 }
uva 10192 - Vacation,布布扣,bubuko.com
原文:http://www.cnblogs.com/royjwy/p/3607355.html