最大公共子序列模板

xiaoxiao2021-02-27  431

#include<iostream> #include<stdio.h> #include<string.h> using namespace std; char x[1001]; char y[1001]; int dp[1001][1001]; int max(int x,int y) { return x>y?x:y; } int main() { int n,m,i,j,num; scanf("%d",&num); while(num--) { scanf("%s %s",x,y); n=strlen(x); m=strlen(y); memset(dp,0,sizeof(dp)); for(i=1;i<=n;i++) { for(j=1;j<=m;j++) { if(x[i-1]==y[j-1]) dp[i][j]=dp[i-1][j-1]+1; else dp[i][j]=max(dp[i-1][j],dp[i][j-1]); } } printf("%d\n",dp[n][m]); } }
转载请注明原文地址: https://www.6miu.com/read-2073.html

最新回复(0)