- 取得連結
- X
- 以電子郵件傳送
- 其他應用程式
#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++
- 取得連結
- X
- 以電子郵件傳送
- 其他應用程式
留言
張貼留言