nyoj 36 最长公共子序列

点击打开 题目 链接


 
#include<stdio.h>
#include <string.h>
#include<iostream>
using namespace std;
char a[1005],b[1005];
int dp[1005][1005];
int main(){
	int n,i,j;
	scanf("%d",&n);
	while(n--){
 		scanf("%s",a);
 		scanf("%s",b);
 		memset(dp,0,sizeof(dp));
        for(i=1;a[i-1]!='\0';i++)
            for(j=1;b[j-1]!='\0';j++)
			if(a[i-1]==b[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[i-1][j-1]);
	}
	return 0;
}
        


你可能感兴趣的:(nyoj 36 最长公共子序列)