本蒟蒻觉得模拟的时间是对的,所有写了模拟,但是喜提了wa2,球蛛球蛛:
#include<iostream>
#include<algorithm>
#include<cmath>
#include<string.h>
#define LL long long
using namespace std;
const int N=2e5+10;
int T;
int n;
int a[N];
int vis[N];
void Solve(){
memset(a,0,sizeof(a));
scanf("%d",&n);
LL sum=0;
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
sum+=1ll*a[i];
}
while(true){
memset(vis,0,sizeof(vis));
int tmp=0;
for(int i=1;i<=n;i++){
vis[a[i]]++;
if(vis[a[i]]==1)
a[i]=tmp;
else{
if(vis[tmp]<vis[a[i]]||(vis[tmp]==vis[a[i]]&&a[i]>tmp))
tmp=a[i];
a[i]=tmp;
}
sum+=1ll*a[i];
}
if(!tmp)
break;
}
printf("%lld\n",sum);
return ;
}
int main(){
scanf("%d",&T);
while(T--)
Solve();
return 0;
}