题目:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1007

水题。。。我甚至连题目都没看完。。。

几乎没有坑点,纯水。。。

#include<cstdio>
#include<cstring>

const int maxn = 110;

int main()
{
	int a[maxn], b[maxn];
	int n1, n2, cnt = 1;
	while (scanf("%d%d", &n1, &n2) && n1 != 0 && n2 != 0)
	{
		int c[maxn][maxn] = {0};
		for (int i = 0; i < n1; i++)
			scanf("%d", &a[i]);
		for (int i = 0; i < n2; i++)
			scanf("%d", &b[i]);
		for (int i = 0; i < n1; i++)
			for (int j = 0; j < n2; j++)
				if (a[i] == b[j])
					c[i + 1][j + 1] = c[i][j] + 1;
				else if (c[i + 1][j] > c[i][j + 1])
					c[i + 1][j + 1] = c[i + 1][j];
				else
					c[i + 1][j + 1] = c[i][j + 1];
		printf("Twin Towers #%d\n", cnt++);
		printf("Number of Tiles : %d\n\n", c[n1][n2]);
	}
	return 0;
}


相关文章: