哈夫曼树

使用优先队列的哈夫曼树

Copy
#include<iostream> #include<stdio.h> #include <vector> #include<queue> using namespace std; priority_queue<long long, vector<long long>, greater<long long>>q; //哈夫曼树 int main() { int n; long long temp, x, y, ans = 0; scanf("%d", &n); for (int i = 0; i < n; i++) { scanf("%lld", &temp); q.push(temp); } while (q.size() > 1) { x = q.top(); q.pop(); y = q.top(); q.pop(); q.push(x + y); ans = x + y; } printf("%lld", ans); return 0; }
posted @   小帆敲代码  阅读(30)  评论(0)    收藏  举报
编辑推荐:
· 没有调度器的协程不是好协程,零基础深入浅出 C++20 协程
· 别做抢活的导演:代码中的抽象层次原则
· 从 Redis 客户端超时到 .NET 线程池挑战
· C23和C++26的#embed嵌入资源指南
· 「EF Core」框架是如何识别实体类的属性和主键的
阅读排行:
· 阿里巴巴为什么禁止超过3张表join?
· 博客园众包线下沙龙第1期:云栖开发者基地,共建技术新天地
· 让 AI 帮我部署网站,太方便了!
· 别做抢活的导演:代码中的抽象层次原则
· .NET周刊【7月第1期 2025-07-06】
点击右上角即可分享
微信分享提示