标签:
1 3 1 2 9
15
这个是学长讲优先队列时候的例题,不过他给的程序真是漏洞太多!
还是看我wa 了n多次后的经验吧!
1 #include<stdio.h> 2 #include<queue> 3 #include<algorithm> 4 using namespace std; 5 priority_queue<int,vector<int>,greater<int> >s; 6 int main() 7 { 8 int n; 9 scanf("%d",&n); 10 while(n--) 11 { 12 int a,b; 13 scanf("%d",&a); 14 while(a--) 15 { 16 scanf("%d",&b); 17 s.push(b); 18 } 19 long long int sum=0,z;z//这里的sum一定不能定义成int型了,已经超过了int范围 20 while(s.size()!=1) 21 { 22 int x,y; 23 x=s.top(); 24 s.pop(); 25 y=s.top(); 26 s.pop(); 27 28 z=x+y; 29 sum+=z; 30 s.push(z); 31 } 32 s.pop();//注意清空队列 33 printf("%lld\n",sum); 34 } 35 return 0; 36 }
标签:
原文地址:http://www.cnblogs.com/Eric-keke/p/4682198.html