救救我
查看原帖
救救我
1294496
wu_18楼主2024/6/26 19:31

小数据用插排就可以做,照理来说大数据用priority_queue应该也能过的呀,求指点QAQ

#include<bits/stdc++.h>
using namespace std;
long long n,x,ans;
priority_queue<int,vector<int>,greater<int>>q;
int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);cout.tie(0);
	cin>>n;
	for(int i=1;i<=n;i++) 
	{
		cin>>x;
		q.push(x);
	}
	while(q.size()>1)
	{
		int a=q.top();
		q.pop();
		int b=q.top();
	    q.pop();
		ans+=a+b;
		q.push(a+b);
	}
	cout<<ans;
	return 0;
}
2024/6/26 19:31
加载中...