爆零求助!
查看原帖
爆零求助!
322957
chy888楼主2024/11/10 21:07
#include<bits/stdc++.h>
using namespace std;
int T,n;
int a[100010],dp[100010];
bool sh[100010];
int fod(int d){
	for(int f = d-1; f >= 1; f--){
		if(a[d]==a[f]&&sh[d]!=1){
			sh[d] = 1;
			sh[f] = 1;
			return a[d];
		}
	}
	return -1;
}
int main(){
	//freopen("color.in","r",stdin);
	//freopen("color.out","w",stdout);
	dp[1] = 0;
	dp[0] = 0;
	cin >> T;
	for(int i = 1; i <= T; i++){
	    memset(a, 0, sizeof a);
		memset(sh, 0, sizeof sh);
		memset(dp, 0, sizeof dp);
		cin >> n;
		for(int j = 1; j <= n; j++){
			cin >> a[j];
		}
		for(int j = 2; j <= n; j++){
			dp[j] = max(dp[j-1],dp[j-1]+fod(j));
		}
		cout << dp[n] << endl;
	}
	return 0;
}
2024/11/10 21:07
加载中...