#include <bits/stdc++.h>
using namespace std;
const int N = 200 + 5;

int arr[N], dp[N][N];

int main(){
 int t; scanf("%d", &t);
 while(t--){
  int n, m; scanf("%d%d", &n, &m);
  for(int i=1;i<=n;i++)
   scanf("%d", arr+i);
  for(int i=1;i<=n;i++) dp[i][i]=1;
  for(int i=n;i>=1;i--){
   for(int j=i+1;j<=n;j++){
    dp[i][j]=1<<25;
    for(int k=i;k+1<=j;k++)
     dp[i][j] = min(dp[i][j], dp[i][k] + dp[k+1][j]);
    if(arr[i]==arr[j]) dp[i][j]--;
   }
  }
  printf("%d\n", dp[1][n]);
 }
 return 0;
}
C++

留言