最短代码!!!
查看原帖
最短代码!!!
545227
gaotian2009楼主2025/1/19 11:48
#include<bits/stdc++.h>
using namespace std;const int NN=1000005;long long t,n,a[NN],f[NN],lst[NN],lss[NN],num[NN];int main(){scanf("%lld",&t);while(t--){scanf("%lld",&n);memset(a, 0, sizeof(a)),memset(f, 0, sizeof(f)),memset(lst, 0, sizeof(lst)),memset(lss, 0, sizeof(lss)),memset(num, 0, sizeof(num));for(int i=1;i<=n;i++) scanf("%lld",&a[i]);for(int i=1;i<=n;i++){num[i]=num[i-1];if(a[i]==a[i-1]) num[i]+=a[i];lst[i]=lss[a[i]];lss[a[i]]=i;f[i]=f[i-1];if(lst[i]!=0) f[i]=max(f[i],f[lst[i]+1]+a[i]+num[i]-num[lst[i]+1]);}printf("%lld\n",f[n]);}return 0; }

最短代码,不接受反驳

2025/1/19 11:48
加载中...