有正确性吗,看不懂题解,赛时代码洛谷跑了100
查看原帖
有正确性吗,看不懂题解,赛时代码洛谷跑了100
548010
小陈同学cyh楼主2024/11/2 09:25
#include<bits/stdc++.h>
using namespace std;
long long t,n,a[200005],c[1000005],f[200005],sum;
int main()
{
	cin>>t;
	while (t)
	{
		t--;sum=0;
		cin>>n;
		for (int i=1;i<=n;i++)
		{
			cin>>a[i];
			if (a[i]==a[i-1])
			{
				i--;n--;
				sum+=a[i];
			}
			c[a[i]]=-a[i];
		}
		for (int i=1;i<=n;i++)
		{
			if (c[a[i]]+a[i]>f[i-1])
			{
				f[i]=c[a[i]]+a[i];
				c[a[i-1]]=f[i];
			}
			else
			{
				f[i]=f[i-1];
			}
			c[a[i]]=f[i];
		}
		cout<<f[n]+sum<<endl;
	}
	return 0;
}
2024/11/2 09:25
加载中...