文章

19

粉丝

0

获赞

148

访问

4.9k

头像
合并果子 题解:优先队列
P1544 中南大学机试题
发布于2025年3月17日 21:14
阅读数 243

读完题首先肯定会想到哈夫曼树,而哈夫曼树的实现可以用到优先队列,优先队列默认从大到小排序,重构后可转换为从小到大。但是这个题仅仅要计算合并体力值,构造哈夫曼树完全是不合算的。所以仅用一个优先队列就可以解决。

图片截取自CSDN:priority_queue<int,vector<int>,greater<int> > pq;

 

 

了解了优先队列解决就很简单了附代码:
#include<bits/stdc++.h>
using namespace std;
priority_queue<int,vector<int>,greater<int> > pq;
int main(){
    int n;
    cin >> n;
    for(int i = 1;i <= n;i++){
        int temp;
        cin >> temp;
        pq.push(temp);
    }
    int ans = 0;
    while(pq.size() != 1){
        int a,b;
        a = pq.top();
        pq.pop();
        b = pq.top();
        pq.pop();
 ...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发