题目: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;
}