50分求助!!!

P1090 [NOIP2004 提高组] 合并果子 / [USACO06NOV] Fence Repair G

@[wangzichenA](/user/686043) 因为需要不停地取出在放回队列,所以每次都要排序,需要用优先队列,每次放值时,它能帮你自动排序!!! ##### 优先队列: ``` 1.从小到大:priority_queue<int,vector<int>,greater<int> > q; 2.从大到小:priority_queue<int,vector<int>,less<int> > q; ``` ##### 优先队列的函数: ``` 1.push(x)//放入一个值x 2.pop()//删除队首元素 3.top()//取出队列顶部 4.empty()//判断队列是否为空 5.size()//求队列长度 ``` //最后附上本蒟蒻的AC代码 ``` #include<bits/stdc++.h> using namespace std; int main(){ int n; cin>>n; priority_queue <int,vector<int>,greater<int> > q; for(int i=1;i<=n;i++){ int x; cin>>x; q.push(x); } int sum=0; while(q.size()>=2){ int x=q.top(); q.pop(); int y=q.top(); q.pop(); sum+=x+y; q.push(x+y); } cout<<sum; return 0; } ```
by mamingyu0927 @ 2023-09-03 19:40:16


@[wangzichenA](/user/686043) 这道题应该用优先队列,可以看看楼上的大佬。
by smyoking @ 2023-09-03 20:06:00


@[smyoking](/user/820348) 我是蒟蒻
by mamingyu0927 @ 2023-09-03 20:26:41


@[mamingyu0927](/user/685725) 比我强就行了,我才是蒟蒻
by smyoking @ 2023-09-03 20:38:11


@[smyoking](/user/820348) @[mamingyu0927](/user/685725) 搞什么啊?我才是蒟蒻,都别跟我争
by wangzichenA @ 2023-09-08 19:02:43


还是感谢大佬的解答,不包括马铭煜【滑稽】
by wangzichenA @ 2023-09-08 19:03:27


@[wangzichenA](/user/686043) 你再这样我下次就不帮你了
by mamingyu0927 @ 2023-09-08 20:23:26


@[mamingyu0927](/user/685725) 那你说了什么啊? 你都没说个解法好吗?
by Earth_Sky @ 2023-09-09 10:05:07


@[WangHaoRu11](/user/783336) ???第一句话不是???
by mamingyu0927 @ 2023-09-09 20:04:08


@[mamingyu0927](/user/685725) 抱歉,看错了
by Earth_Sky @ 2023-09-10 14:31:17


|