哈夫曼树
使用优先队列的哈夫曼树
#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;
}
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
【推荐】2025 HarmonyOS 鸿蒙创新赛正式启动,百万大奖等你挑战
【推荐】博客园的心动:当一群程序员决定开源共建一个真诚相亲平台
【推荐】开源 Linux 服务器运维管理面板 1Panel V2 版本正式发布
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有调度器的协程不是好协程,零基础深入浅出 C++20 协程
· 别做抢活的导演:代码中的抽象层次原则
· 从 Redis 客户端超时到 .NET 线程池挑战
· C23和C++26的#embed嵌入资源指南
· 「EF Core」框架是如何识别实体类的属性和主键的
· 阿里巴巴为什么禁止超过3张表join?
· 博客园众包线下沙龙第1期:云栖开发者基地,共建技术新天地
· 让 AI 帮我部署网站,太方便了!
· 别做抢活的导演:代码中的抽象层次原则
· .NET周刊【7月第1期 2025-07-06】