Common Subsequence-HDU1159 #include<bits/stdc++.h> using namespace std; #define IOS ios::sync_with_stdio(false),cin.tie(0),cout.tie(0) #define int long long string s1,s2; //输入的两个字符串 int l1,l2; //s1,s2的长度 int dp[1005][1005]; //存储状态 void solve(){ l1 = s1.length(),l2 = s2.length(); s1 = " " + s1,s2 = " "+ s2; //初始化 for(int i = 1;i <= l1;++i) for(int j = 1;j <= l2;++j) if(s1[i] == s2[j]) dp[i][j] = dp[i - 1][j - 1] + 1; else dp[i][j] = max(dp[i][j - 1],dp[i - 1][j]); cout<<dp[l1][l2]<<"\n"; } signed main(){ IOS; while(cin>>s1>>s2) solve(); return 0; }