rt,交洛谷官方数据50,实际0分
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=5050;
int t,n,m,ans;
int dp[N][N][3],a[N];
inline void init(int n){
ans=0;
for(int i=0;i<=n;i++){
for(int j=0;j<=n;j++){
dp[i][j][0]=dp[i][j][1]=-0x3f3f3f3f;
}
}
dp[0][0][0]=0;
}
signed main(){
// printf("%lld\n",((1==1)?1:0));
freopen("color.in","r",stdin);
freopen("color.out","w",stdout);
scanf("%lld",&t);
while(t--){
scanf("%lld",&n);
init(n);
// dp[0][0]=0;
for(int i=1;i<=n;i++)scanf("%lld",&a[i]);
for(int i=1;i<=n;i++){
int now=i&1;
for(int k=0;k<=i-1;k++){
dp[i][k][now]=max(dp[i][k][now],dp[i-1][k][now^1]+((a[i]==a[i-1])?a[i]:0));
dp[i-1][i][now]=max(dp[i-1][i][now],dp[i-1][k][now^1]+((a[i]==a[k])?a[i]:0));
dp[i][i-1][now]=max(dp[i][i-1][now],dp[k][i-1][now^1]+((a[i]==a[k])?a[i]:0));
dp[k][i][now]=max(dp[k][i][now],dp[k][i-1][now^1]+((a[i]==a[i-1])?a[i]:0));
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
ans=max(ans,dp[i][j][n&1]);
ans=max(ans,dp[j][i][n&1]);
}
}
printf("%lld\n",ans);
}
return 0;
}