func_code_string: #include <bits/stdc++.h>   using namespace std;   const int MX = 3005;   int n, a[MX], mem[MX][MX], ind[MX];   vector<int> pos[MX];   int dp(int i, int j) {     if (i > j) return 0;     int &res = mem[i][j];     if (res != -1) return res;     res = dp(i, j - 1);     for (int k = ind[j] - 1, x; k >= 0 && (x = pos[a[j]][k]) >= i; k--)       res = max(res, dp(i, x) + dp(x + 1, j - 1) + 1);     return res;   }   void main_() {     cin >> n;     for (int i = 0; i < int(n + 1); i++) pos[i].clear();     for (int i = 0; i < int(n); i++) {       cin >> a[i];       ind[i] = pos[a[i]].size();       pos[a[i]].push_back(i);     }     for (int i = 0; i < int(n); i++)       for (int j = 0; j < int(n); j++) mem[i][j] = -1;     cout << n - 1 - dp(0, n - 1) <<   n ;   }   int main() {     ios_base::sync_with_stdio(0);     cin.tie(0);     cout.tie(0);     int t = 1;     cin >> t;     while (t--) main_();     return 0;   }   