char num[20]; for (int i = 0; i < n; i ++) { cin >> num; l[i] = num[0] - '0', r[i] = num[strlen(num) - 1] - '0'; }
int res = 0; for (int i = 0; i < n; i ++) { f[i] = 1; for (int j = 0; j < i; j ++) if (l[i] == r[j]) f[i] = max(f[j] + 1, f[i]); res = max(res, f[i]); }
char num[20]; for (int i = 0; i < n; i ++) { cin >> num; l[i] = num[0] - '0', r[i] = num[strlen(num) - 1] - '0'; }
int res = 0; for (int i = 0; i < n; i ++) { f[i] = 1; f[i] = max(f[i], g[l[i]] + 1); //更新状态 g[r[i]] = max(f[i], g[r[i]]); //更新g数组 res = max(res, f[i]); }