巴啦啦能量之超级无敌连接嘤嘤嘤(我莫不是个傻子)
这题。。。好水。。。
暴力加一丢丢优化都能过。。
可是咱们老师要咱们用堆,那也没办法 咱也不敢说咱也不敢问
具体注释在代码里面了,本身看看喽(比心心)~~ios
1 #include<cstdio> 2 #include<iostream> 3 #include<algorithm> 4 #include<queue> 5 #include<cmath> 6 #include<cstring> 7 using namespace std; 8 9 int n,ans; 10 priority_queue<int,vector<int>,greater<int> > zy; 11 12 int main(){ 13 scanf("%d",&n); 14 for(int i=1;i<=n;i++){ 15 int r; 16 scanf("%d",&r); 17 zy.push(r);//读入,自主维护 18 } 19 for(int i=1;i<=n-1;i++){ 20 int z=q.top(); 21 zy.pop();//第一个读取,弹出 22 int y=zy.top(); 23 zy.pop();//第二个读取,弹出 24 zy.push(z+y);//合并,再放入堆中 25 ans+=z+y; 26 } 27 printf("%d\n",ans); 28 return 0; 29 }
那。。新人开博鼓励一下吧。。优化