全WA求条
查看原帖
全WA求条
1446545
XHZnewlife楼主2024/11/24 11:15
#include<bits/stdc++.h>
using namespace std;
struct ST{
	int num,sta;
}st;
vector<ST> a;
vector<int> ans;
int T;
void dp(){
	int n;
	cin>>n;
	a.push_back(st);
	ans.push_back(0);
	map<int,int> b;
	for(int i=1,v;i<=n;i++){
		cin>>v;
		a.push_back({v,0});
		if(a[i-1].num==a[i-2].num)a[i-1].sta=i-2;
		else if(b[v]!=0) a[i-1].sta=b[v]+1;
		b[v]=i;
	}
	for(int i=1;i<=n;i++){
		if(a[i].sta!=0 and i!=1){
			ans.push_back(max(ans[i-1],ans[a[i].sta]+a[i].num));
			ans[i-1]=ans[i];
		}
		else ans.push_back(ans[i-1]);
	}
	cout<<ans[n]<<endl;
}
int main(){
	cin>>T;
	for(int i=1;i<=T;i++){
		dp();
		a.clear();
		ans.clear();
	}
	return 0;
}

谢谢诸位dalao

2024/11/24 11:15
加载中...