进阶1 翻译40 单词33

📅 发布时间:2026/7/6 4:23:19 👁️ 浏览次数:
进阶1 翻译40 单词33
题目1Huffuman树作者: Turbo时间限制: 1s章节: 基本练习数组问题描述Huffman树在编码中有着广泛的应用。在这里我们只关心Huffman树的构造过程。给出一列数{pi}{p0,p1, …,pn-1}用这列数构造Huffman树的过程如下1. 找到{pi}中最小的两个数设为pa和pb将pa和pb从{pi}中删除掉然后将它们的和加入到{pi}中。这个过程的费用记为papb。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构造过程结束总费用为510172759。输入说明输入的第一行包含一个正整数nn100。接下来是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的内容保留在原有位置。很多计算机有额外的内存设备称为海量存储或辅助存储系统。有三种类型常用于个人计算机磁存储光存储和固态存储。单词