求大佬差错!为什么STL大根堆小根堆只有40分??
查看原帖
求大佬差错!为什么STL大根堆小根堆只有40分??
236885
HuangYunJie ̄へ ̄楼主2020/7/26 22:40
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<queue>
#include<vector>
using namespace std;
int n,x,ans1=0,ans2,a,b,c;
int main(){
    priority_queue<int,vector<int>,greater<int> >q1; 
	priority_queue<int>q2;
    scanf("%d",&n);
    for(int i=0;i<n;i++){
    	cin>>x;
    	q1.push(x);
    	q2.push(x);
	}
	while(q1.size()>=2){
		a=q1.top();q1.pop();
		b=q1.top();q1.pop();
		ans1+=a+b;
		q1.push(a+b);
	}
	while(q2.size()>=2){
		a=q2.top();q2.pop();
		b=q2.top();q2.pop();
		ans2+=a+b;
		q2.push(a+b);
	}
	printf("%d\n%d\n",ans1,ans2);
	return 0;
}

只有40分!请大佬帮忙!!!

2020/7/26 22:40
加载中...