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