研0 冲刺算法竞赛 day27 P1090 [NOIP2004 提高组] 合并果子 / [USACO06NOV] Fence Repair G

P1090 [NOIP2004 提高组] 合并果子 / [USACO06NOV] Fence Repair G - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

考点:哈夫曼树

思路:建优先队列,自动排序,然后每次取出最小两个即可。本来思路是数组的,但是一直写不对,可能是情况想少了

代码:

复制代码
#include<iostream>
#include<algorithm>
#include<queue>
using namespace std;

priority_queue<int, vector<int>, greater<int>> q;//优先队列

int n, x, ans;

int main()
{
	cin >> n;
	for (int i = 0; i < n; ++i)
	{
		cin >> x;
		q.push(x);//插入x
	}
	while (q.size() >= 2) {//只剩一个结束
		int a = q.top(); q.pop();
		int b = q.top(); q.pop();//弹出最小的两个
		ans += a + b;
		q.push(a + b);
	}
	cout << ans << endl;
	return 0;
}

总结:优先队列,作为最小堆使用

相关推荐
jz_ddk20 分钟前
[算法] 算法PK:LMS与RLS的对比研究
人工智能·神经网络·算法·信号处理·lms·rls·自适应滤波
Miraitowa_cheems22 分钟前
LeetCode算法日记 - Day 106: 两个字符串的最小ASCII删除和
java·数据结构·算法·leetcode·深度优先
旭编23 分钟前
小红的好矩形
c++·算法
小白程序员成长日记23 分钟前
2025.11.12 力扣每日一题
算法·leetcode·职场和发展
Alex艾力的IT数字空间29 分钟前
设计既保持高性能又兼顾可移植性的跨平台数据结构
数据结构·分布式·算法·微服务·中间件·架构·动态规划
leoufung40 分钟前
贪心算法核心定理与应用——以 Gas Station 问题为例
算法·贪心算法
2501_941111461 小时前
C++与硬件交互编程
开发语言·c++·算法
未若君雅裁1 小时前
LeetCode 51 - N皇后问题 详解笔记
java·数据结构·笔记·算法·leetcode·剪枝
Tim_102 小时前
【算法专题训练】30、二叉树的应用
算法
夜晚中的人海2 小时前
【C++】哈希表算法习题
c++·算法·散列表