news 2026/10/31 21:39:55

进阶1 翻译40 单词33

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
进阶1 翻译40 单词33

题目1:Huffuman树

作者: Turbo

时间限制: 1s

章节: 基本练习(数组)

问题描述

Huffman树在编码中有着广泛的应用。在这里,我们只关心Huffman树的构造过程。
给出一列数{pi}={p0,p1, …,pn-1},用这列数构造Huffman树的过程如下:
1. 找到{pi}中最小的两个数,设为pa和pb,将pa和pb从{pi}中删除掉,然后将它们的和加入到{pi}中。这个过程的费用记为pa+pb。
2. 重复步骤1,直到{pi}中只剩下一个数。
在上面的操作过程中,把所有的费用相加,就得到了构造Huffman树的总费用。
本题任务:对于给定的一个数列,现在请你求出用该数列构造Huffman树的总费用。

例如,对于数列{pi}={5, 3, 8, 2, 9},Huffman树的构造过程如下:
1. 找到{5, 3, 8, 2, 9}中最小的两个数,分别是2和3,从{pi}中删除它们并将和5加入,得到{5, 8, 9, 5},费用为5。
2. 找到{5, 8, 9, 5}中最小的两个数,分别是5和5,从{pi}中删除它们并将和10加入,得到{8, 9, 10},费用为10。
3. 找到{8, 9, 10}中最小的两个数,分别是8和9,从{pi}中删除它们并将和17加入,得到{10, 17},费用为17。
4. 找到{10, 17}中最小的两个数,分别是10和17,从{pi}中删除它们并将和27加入,得到{27},费用为27。
5. 现在,数列中只剩下一个数27,构造过程结束,总费用为5+10+17+27=59。

输入说明

输入的第一行包含一个正整数n(n<=100)。
接下来是n个正整数,表示p0,p1, …,pn-1,每个数不超过1000。

输出说明

输出用这些数构造Huffman树的总费用。

总结:

对输入的序列先进行从小到大排序,取排序后的数列前两个作为第一次构造,将合并后的和加到 wpl 上并存入数列第一个位置,将数列第二个位置删除其余元素往前移,再对该数列进行从小到大的排列,排列完后取前两个数作为第二次构造,重复上述步骤,直至数列中只剩下一个数为止,输出 wpl 为 Huffman 树的总费用

#include <stdio.h> int main(){ int n; scanf("%d", &n); int arr[n]; for(int i = 0; i < n; i++) scanf("%d", &arr[i]); for(int i = 0; i < n - 1; i++){//将数列从小到大排序 for(int j = i + 1; j < n; j++){ if(arr[i] > arr[j]){ int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } } } int wpl = 0; int size = n;//当前数组有效大小 while(size > 1){ int new_weight = arr[0] + arr[1]; wpl += new_weight; arr[0] = new_weight; for(int i = 1; i < size - 1; i++) arr[i] = arr[i + 1]; size--; for(int i = 0; i < size - 1; i++){ for(int j = i + 1; j < size; j++){ if(arr[i] > arr[j]){ int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } } } } printf("%d", wpl); return 0; }

翻译:

IV.存储硬件
计算机的主存储器被组织成称为存储单元的可管理单元。为了反映能够以任意顺序访问存储单元的能力,计算机的主存储器经常被称为随机存取存储器(RAM)。RAM是微处理器的等待室。它保存等待被处理的原始数据,处理这个数据的程序指令,和控制计算机系统基本功能的操作系统指令。它也保存处理的结果,直到他们可以被移动到更永久的位置。

只读存储器(ROM)中包含一组被称为引导加载程序的小型指令集和数据。引导加载程序指令告诉数字设备如何开始。通常,引导加载程序执行自我测试去查明硬件是否操作正确,也可能验证关键程序是否未被破坏。然后它将操作系统加载到RAM中。然而,RAM是暂时和易失性的,ROM是更永久和非易失性的。甚至当设备关机时,ROM的内容保留在原有位置。

很多计算机有额外的内存设备,称为海量存储或辅助存储系统。有三种类型常用于个人计算机:磁存储,光存储和固态存储。


单词:

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/18 4:52:16

竞赛中常用的C++STL用法

目录 ​一、核心容器 1. 序列式容器 (1) vector&#xff08;动态数组&#xff09; (2) string&#xff08;字符串&#xff09; 2. 关联式容器 (1) map/unordered_map&#xff08;键值对&#xff09; (2) set/unordered_set&#xff08;集合&#xff09; 3. 容器适配器&a…

作者头像 李华
网站建设 2026/10/18 5:33:19

软件测试进阶:测试用例的设计与编写指南

在上篇博客中&#xff0c;我分享了软件测试的基础分类、质量模型和整体流程。今天&#xff0c;我们深入一点&#xff0c;聚焦于测试的核心工具——测试用例。作为软件测试的“操作手册”&#xff0c;测试用例帮助我们系统化地验证软件是否符合需求。它不仅仅是文档&#xff0c;…

作者头像 李华
网站建设 2026/10/27 22:27:43

飞蛾扑火MFO算法在MATLAB中实现BP神经网络权值和阈值寻优——多分类与二分类模型的建立(...

飞蛾扑火MFO算法对BP的权值和阈值做寻优&#xff0c;建立多分类和二分类的分类模型。 程序内注释详细直接替换数据就可以用。 数据要求多输入单输出。 程序语言为matlab。 程序运行具体效果图如下所示。 想要的加好友我吧。最近在折腾分类模型的时候发现个有意思的玩意儿——用…

作者头像 李华
网站建设 2026/10/18 5:17:52

用Python探索数学问题的魅力:基础语法与应用

今天是Python系列课程的第一课&#xff0c;我们将探索Python解决 数学问题的魅力。首先&#xff0c;我们会面临一个数学问题&#xff1a;2468?&#xff0c;这是一个简单的 偶数累加问题。虽然我们可以借助等差数列来解决它&#xff0c;但今天&#xff0c;我们将尝试用Python来…

作者头像 李华