0pts求助之灵异事件
查看原帖
0pts求助之灵异事件
1643834
slf1012楼主2025/1/22 16:38
#include <bits/stdc++.h>
using namespace std;
queue<long long> q, u;
long long n, a[10000005], b[100005], da = 0;
int main(){
	scanf("%lld", &n);
	for(int i = 1;i<=n;i++){
		scanf("%lld", &a[i]);
		b[a[i]]++;
	}
	for(int i = 1;i<=100000;i++){
		for(int j = 1;j<=b[i];j++){
			q.push(i);
		}
	}
	while(u.size() + q.size()>=2){
		if(!u.empty()&&q.front()>u.front()){
			int x = u.front();
			u.pop();
			if(u.front()<q.front()){
				u.push(u.front() + x);
				u.pop();
			}else{
				u.push(x + q.front());
				q.pop();
			}
		}else if(!u.empty()){
			int x = q.front();
			q.pop();
			if(u.front()<q.front()){
				u.push(u.front() + x);
				u.pop();
			}else{
				u.push(x + q.front());
				q.pop();
			}
		}else{
			int x = q.front();
			q.pop();
			u.push(q.front() + x);
			q.pop();
		}
		da += u.back();
		while(q.empty()||!u.empty()&&u.front()>q.back()){
			q.push(u.front());
			u.pop();
		}
	}
	printf("%lld", da);
	return 0;
}

以上代码在洛谷提交:https://www.luogu.com.cn/record/199956570

#2 应输出 175175 实际输出 153153

而在本地评测输出 175175 ,有大佬可以帮蒟蒻看一下吗???

2025/1/22 16:38
加载中...