Advertisement
Guest User

Untitled

a guest
Mar 24th, 2019
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.02 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. #define MAXC 10000
  6.  
  7. int lenA,lenB;
  8. int dp[MAXC][MAXC];
  9. bool visited[MAXC][MAXC];
  10.  
  11. string A,B;
  12.  
  13. int print_array(int a, int b)
  14. {
  15.     for( int i=0; i<a; i++ )
  16.     {
  17.         for( int j=0; j<b; j++ )
  18.             cout<<visited[i][j]<<" ";
  19.             cout<<endl;
  20.     }
  21.      cout<<"DP Array"<<endl;
  22.     for( int i=0; i<a; i++ )
  23.     {
  24.         for( int j=0; j<b; j++ )
  25.             cout<<dp[i][j]<<" ";
  26.             cout<<endl;
  27.     }
  28. }
  29.  
  30. int LCS(int i,int j)
  31. {
  32.     if( i == lenA or j == lenB ) return 0;
  33.     if( visited[i][j] ) return dp[i][j];
  34.  
  35.     int ans= 0;
  36.  
  37.     if( A[i] == B[j] ) ans = 1+LCS(i+1,j+1);
  38.     else
  39.     {
  40.         int val1 = LCS(i+1,j);
  41.         int val2 = LCS(i,j+1);
  42.         ans = max(val1,val2);
  43.     }
  44.     visited[i][j] = 1;
  45.     dp[i][j] =ans;
  46.     return dp[i][j];
  47. }
  48.  
  49. int main()
  50. {
  51.     print_array(10,10);
  52.     cin>>A>>B;
  53.  
  54.     lenA = A.length();
  55.     lenB = B.length();
  56.     cout<<LCS(0,0)<<endl;
  57.  
  58.     print_array(10,10);
  59.     return 0;
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement