#define INF 0x7f7f7f7f #define MAXN 100005 #define N 200005 #define P 2 #define MOD 99991
typedeflonglong ll;
namespace fastIO { //char buf[(1 << 22)], *p1 = buf, *p2 = buf; inlineint(){ char c = getchar(); int x = 0, f = 1; while (c < '0' || c > '9') { if (c == '-') f = -1; c = getchar(); } while (c >= '0' && c <= '9') x = x * 10 + c - '0', c = getchar(); return x * f; } }
usingnamespace fastIO; usingnamespacestd;
int t, n, dp[130][130], a[130], cnt;
intmain(){ cin >> t; while (t--) { cin >> n; memset(dp, 0, sizeof(dp)); for (int i = 1; i <= n; i++) cin >> a[i]; for (int i = n; i > 0; i--) for (int j = i; j <= n; j++) { dp[i][j] = dp[i + 1][j] + 1; //cout << i << " " << j << " " << dp[i][j] << " "; for (int k = i + 1; k <= j; k++) if (a[k] == a[i]) dp[i][j] = min(dp[i][j], dp[i + 1][k] + dp[k + 1][j]); //cout << dp[i][j] << endl; } printf("Case %d: %dn", ++cnt, dp[1][n]); } }
近期评论