模拟求助
查看原帖
模拟求助
501923
duchengjun楼主2024/7/23 20:02

本蒟蒻觉得模拟的时间是对的,所有写了模拟,但是喜提了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;
	
}
2024/7/23 20:02
加载中...