标签:nyoj 懒省事的小明
1 3 1 2 9
15
刚开始想的用list做一次一排序结果超时说明list::sort效率不高然后用优先队列结果数据比较坑假设果子数都为20000 则12000*20000大于int型范围需用long long型
#include<cstdio> #include<cstdlib> #include<cstring> #include<queue> #include<functional> using namespace std; int main() { int k,i,n,a; scanf("%d",&k); while(k--){ priority_queue<long long,vector<long long>,greater<long long> >Q; scanf("%d",&n); for(i=0;i<n;++i){ scanf("%d",&a); Q.push(a); } if(n==1){ printf("%d\n",0);continue; } long long sum,ans=0; while(!Q.empty()){ sum=0; sum+=Q.top();Q.pop(); sum+=Q.top();Q.pop(); ans+=sum; if(Q.empty())break; Q.push(sum); } printf("%lld\n",ans); } return 0; }
标签:nyoj 懒省事的小明
原文地址:http://blog.csdn.net/r1986799047/article/details/42715655