SuitNdtie

Jojo EXAM08

Mar 27th, 2019
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.59 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<string.h>
  3.  
  4. typedef long long int ll;
  5. char str1[510];
  6. char str2[510];
  7. ll dp[510][510];
  8.  
  9. ll cal(int I,int J){
  10.     if(J < 0){
  11.         return 1;
  12.     }
  13.     if(I < 0){
  14.         return 0;
  15.     }
  16.     if(dp[I][J] != -1)return dp[I][J];
  17.    
  18.     if(str1[I] == str2[J]){
  19.         dp[I][J] = cal(I-1,J) + cal(I-1,J-1);
  20.         return dp[I][J];
  21.     }
  22.     dp[I][J] = cal(I-1,J);
  23.     return dp[I][J];
  24. }
  25.  
  26.  
  27. int main()
  28. {
  29.    
  30.     scanf("%s",str1);
  31.     scanf("%s",str2);
  32.     for(int i=0;i<510;i++)for(int j=0;j<510;j++)dp[i][j] = -1;
  33.     int len1 = strlen(str1);
  34.     int len2 = strlen(str2);
  35.    
  36.     printf("%lld",cal(len1-1,len2-1));
  37. }
Advertisement
Add Comment
Please, Sign In to add comment