Advertisement
yuawn

algo2017_week7_LCS

Nov 15th, 2017
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.68 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define pb push_back
  4. #define ALL(o) (o).begin(),(o).end()
  5. #define fo(n) for(int i=0;i<n;i++)
  6. #define fos(n) for(int i=1;i<=n;i++)
  7. #define MAX 700
  8.  
  9. string a , b;
  10.  
  11. int LCS(){
  12.     int dp[a.size() + 1][b.size() + 1];
  13.    
  14.     for( int i = 0 ; i <= a.size() ; ++i ) dp[i][0] = 0;
  15.     for( int i = 0 ; i <= b.size() ; ++i ) dp[0][i] = 0;
  16.    
  17.     fos( a.size() )
  18.         for( int j = 1 ; j <= b.size() ; ++j )
  19.             dp[i][j] = a[i - 1] == b[j - 1] ? dp[i-1][j-1] + 1 : max( dp[i][j-1] , dp[i-1][j] );
  20.        
  21.     return dp[a.size()][b.size()];
  22. }
  23.  
  24.  
  25. int main(){
  26.  
  27.     int T;
  28.    
  29.     cin >> T;
  30.    
  31.     while( T-- ){
  32.         cin >> a >> b;
  33.         cout << LCS() << endl;
  34.     }
  35.  
  36.     return 0;
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement