UVA 10066 shuangzita...


//lun lcs de zhong yao xing ....
#include
#include
#include
using namespace std;

int dp[102][102];
int n1,n2;
int a[200];
int b[200];
int lcs()
{
	memset(dp,0,sizeof(dp));
	for(int i=1;i<=n1;i++)
	{
		for(int j=1;j<=n2;j++)
		{
			if(a[i]==b[j])
				dp[i][j]=dp[i-1][j-1]+1;
			else
				dp[i][j]=max(dp[i-1][j],dp[i][j-1]);
		}
	}
	return dp[n1][n2];
}
int main()
{
	int T=1;
	while(scanf("%d%d",&n1,&n2)&&(n1!=0||n2!=0))
	{
		for(int i=1;i<=n1;i++)
			scanf("%d",&a[i]);
		for(int i=1;i<=n2;i++)
			scanf("%d",&b[i]);
		int ans=lcs();
		printf("Twin Towers #%d\nNumber of Tiles : %d\n\n",T++,ans);
	}
	return 0;
}

你可能感兴趣的:(ACM,基础算法,DP)