最长公共子序列
//最长公共子序列(个数) #include<iostream> using namespace std; int c[100][100]={0}; int len1,len2; int gcd(string a,string b){ len1=a.length(); len2=b.length(); int tmp=-1; for(int i=0;i<len1;i++) { for(int j=0;j<len2;j++){ if(a[i]==a[j]) c[i][j]=c[i-1][j-1]+1; else c[i][j]=max(c[i-1][j],c[i][j-1]); if(tmp<c[i][j]) tmp=c[i][j]; } } return tmp; } int main() { string a,b; while(cin>>a>>b){ cout<<gcd(a,b); } }