hdu 1501 Zipper--LCS

#include<stdio.h>
#include<string.h>
char a[210],b[210],c[420],d[210][210];//忘了c应该是400+
int main()
{
	int t,n=1,i,j,len1,len2,len3;
	scanf("%d",&t);
	getchar();
	while(t--)
	{
		scanf("%s%s%s",a+1,b+1,c+1);
		len1=strlen(a+1)+1;
		len2=strlen(b+1)+1;
		len3=strlen(c+1)+1;
		memset(d,0,sizeof(d));
		for(i=1;i<len1;i++)//注意初始化
			if(a[i]==c[i])
				d[i][0]=1;
		for(i=1;i<len2;i++)
			if(b[i]==c[i])
				d[0][i]=1;
		for(i=1;i<len1;i++)
			for(j=1;j<len2;j++)
				d[i][j]=(d[i-1][j]&&(a[i]==c[i+j]))||(d[i][j-1]&&(b[j]==c[i+j]));
		printf("Data set %d: ",n++);
		if(d[len1-1][len2-1])
			printf("yes\n");
		else printf("no\n");
	}
	return 0;
}

 

你可能感兴趣的:(hdu 1501 Zipper--LCS)