Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<string.h>
- typedef long long int ll;
- char str1[510];
- char str2[510];
- ll dp[510][510];
- ll cal(int I,int J){
- if(J < 0){
- return 1;
- }
- if(I < 0){
- return 0;
- }
- if(dp[I][J] != -1)return dp[I][J];
- if(str1[I] == str2[J]){
- dp[I][J] = cal(I-1,J) + cal(I-1,J-1);
- return dp[I][J];
- }
- dp[I][J] = cal(I-1,J);
- return dp[I][J];
- }
- int main()
- {
- scanf("%s",str1);
- scanf("%s",str2);
- for(int i=0;i<510;i++)for(int j=0;j<510;j++)dp[i][j] = -1;
- int len1 = strlen(str1);
- int len2 = strlen(str2);
- printf("%lld",cal(len1-1,len2-1));
- }
Advertisement
Add Comment
Please, Sign In to add comment