intmain() { scanf("%d%s", &n, s + 1); memset(f, 0x3f, sizeof(f)); for (int i = 1; i <= n + 1; i++) f[i][i] = 1; for (int len = 2; len <= n; len++) { for (int i = 1; i <= n - len + 1; i++) { int j = i + len - 1; for (int k = i; k < i + len - 1; k++) f[i][j] = min(f[i][j], f[i][k] + f[k + 1][j] - (s[i] == s[j])); } } printf("%d", f[1][n]); return0; }