PTA_数据结构与算法题目集(中文)_7-9 Huffman Codes (30 分)_简洁版解法
题目地址题目分析我们在分析哈夫曼树建立规则后可知在所有n个数据作为子叶节点时需且仅需n-1个连接点来构成完整的哈夫曼树。故我们设置一个大小为2*n的结构体数组并使用其中1到2*n-1共计n n-1个位子来建立哈夫曼树。每次我们通过线性查找得到2个最小值并做标记。这时我们仅仅需要从n1这个位置开始 记录 最小两值所处位置 直至2*n-1这个位置而2*n-1这个位置既是我们的头结点。每次我们检查学生数据仅仅需要比较min_length的长度段。以上的处理针对型较强仅仅适合这道数据量不多的题目。我的代码#includestdio.h #includestdlib.h #includestring.h #define INF 0x3f3f3f3f typedef struct node { int val; int left, right; }node, *np; np nn; int n, m, huf 0; bool mark[126]; void buildHuff(int id) { int min1 INF, min2 INF, m1-1, m2-1; for (int i 1; i id - 1; i) if (mark[i]) { if (nn[i].val min1) { min2 min1, m2 m1; min1 nn[i].val, m1 i; } else if (nn[i].val min2) min2 nn[i].val, m2 i; } nn[id].val min1 min2; nn[id].left m1, nn[id].right m2; mark[m1] mark[m2] false; } int getHuff(int id, int level) { if (id 1 id n) return nn[id].val*level; return getHuff(nn[id].left, level 1) getHuff(nn[id].right, level 1); } int main() { scanf(%d, n); getchar(); nn (np)malloc(sizeof(node) * 2 * n);//nice method for (int i 1, t; i n; i) { getchar(); getchar(); scanf(%d, t); nn[i].val t, nn[i].left nn[i].right -1; } for (int i 0; i 126; i) mark[i] true; for (int i n 1; i 2 * n; i) buildHuff(i); int huf getHuff(2 * n - 1, 0); scanf(%d, m); getchar(); for (int i 0; i m; i) { char cc[63][63] { {\0} }; for (int j 0, cnt; j n; j) { char c; cnt 1; getchar(); getchar(); while ((c getchar()) ! \n) cc[j][cnt] c; cc[j][0] cnt - 1; } int test 0; for (int i 0; i n; i) test (int)cc[i][0] * nn[i1].val; if (test ! huf) { printf(%s\n, No); continue; } bool flag true; for (int i 0; i n; i) for (int j 0; j n; j) { int len cc[i][0] cc[j][0] ? cc[j][0] : cc[i][0]; if (flag i ! j !memcmp(cc[i] 1, cc[j] 1, len)) { printf(%s\n, No); flag false; } } if (flag) printf(%s\n, Yes); } return 0; }

相关新闻

JAVA计算机毕设之基于SpringBoot+Vue的校园共享单车信息化运维管理系统 校园共享单车故障上报与车辆调度管理系统(完整前后端代码+说明文档+LW,调试定制等)

JAVA计算机毕设之基于SpringBoot+Vue的校园共享单车信息化运维管理系统 校园共享单车故障上报与车辆调度管理系统(完整前后端代码+说明文档+LW,调试定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/28 15:29:24阅读更多 →
【Bug已解决】In a dual-machine mixed setup running DP, some nodes fail to reach all_reduce on time... 解决方

【Bug已解决】In a dual-machine mixed setup running DP, some nodes fail to reach all_reduce on time... 解决方

【Bug已解决】In a dual-machine mixed setup running DP, some nodes fail to reach all_reduce on time... 解决方案 一、现象长什么样 在两台机器(dual-machine,双节点)组成的**数据并行(DP)**训练/推理集群里&…

2026/7/28 15:27:24阅读更多 →
Java虚拟线程实战:高并发I/O性能提升5倍

Java虚拟线程实战:高并发I/O性能提升5倍

1. 项目概述:当虚拟线程遇上高并发I/O 去年在重构一个日均请求量超300万的支付对账系统时,我首次将生产环境JDK升级到21,用虚拟线程重构了原有的线程池回调地狱架构。改造后单机QPS从1200提升到6500,线程上下文切换开销降低87%&am…

2026/7/28 15:27:24阅读更多 →
故障根因1分钟定位?具备AI根因自动定位故障的智能运维平台厂商这样解题

故障根因1分钟定位?具备AI根因自动定位故障的智能运维平台厂商这样解题

深夜两点,运维值班手机再次响起。系统告警如潮水般涌来,数百条告警在屏幕上持续滚动,有效信息却淹没其中。排障团队被紧急召回,在日志、监控、链路数据之间反复切换,依靠经验和猜测逐层排查。待根因锁定、业务恢复&…

2026/7/28 16:33:50阅读更多 →
【转载】如何让自己像打王者荣耀一样发了疯、拼了命、石乐志的学习?

【转载】如何让自己像打王者荣耀一样发了疯、拼了命、石乐志的学习?

阶段性反馈机制(如何持之以恒、让自己发疯) 反馈机制是王者荣耀的核心武器,击杀野怪获得金币,不断地努力,获得奖励是我们不断的玩这个游戏的主要原因,也是人的本能,我什么都得不到凭什么这么做&…

2026/7/28 16:33:50阅读更多 →
破局的第一性原理

破局的第一性原理

破局的第一步是先翻旧桌子,不是在旧规则里当第一。先翻旧桌子的第一步是切断退路,不是给自己留备选。切断退路的第一步是承认现状已经烂透,不是自我催眠一切都好。承认现状已经烂透的第一步是剥离虚荣的伪装,不是维护可怜的面子。…

2026/7/28 16:33:50阅读更多 →
别再只会调 Prompt:Java 程序员如何给 AI 应用加一套可复现评测体系

别再只会调 Prompt:Java 程序员如何给 AI 应用加一套可复现评测体系

摘要:很多 AI 应用刚开始效果不错,真正接入业务后却反复出现“昨天能答,今天答错”“换个模型全线漂移”“Prompt 改了一行没人知道影响多大”。本文从 Java 后端视角,讲一套最小可用的 AI 评测体系:样本怎么建、指标怎…

2026/7/28 16:33:50阅读更多 →
蓝牙音箱和车载免提有了新选择,WT2605C的AEC降噪和EQ我们实打实试了

蓝牙音箱和车载免提有了新选择,WT2605C的AEC降噪和EQ我们实打实试了

做车载免提和蓝牙音箱的工程师,应该都栽过通话这个坑。车开到八十码,风声胎噪灌进麦克风,对方听到的声音断断续续。音箱更麻烦,喇叭在放歌,麦克风又把这段声音收回来,对方耳朵里全是回音。这两件事不解决&a…

2026/7/28 16:33:50阅读更多 →
JAVA毕设项目:基于 SpringBoot 的大学生互助交流社区论坛平台设计 校园动态分享与交互式论坛管理系统 (源码+文档,讲解、调试运行,定制等)

JAVA毕设项目:基于 SpringBoot 的大学生互助交流社区论坛平台设计 校园动态分享与交互式论坛管理系统 (源码+文档,讲解、调试运行,定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/28 16:31:50阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/28 4:06:39阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/28 2:08:06阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/28 1:38:28阅读更多 →
告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生 【免费下载链接】OmenSuperHub Control Omen laptop performance, fan speeds, and keyboard lighting, and unlock power limits. 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 你是否也曾为官方Om…

2026/7/28 0:00:29阅读更多 →
RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

做 RAG 的人应该都踩过这个致命的坑:把几百页的财报、法规、技术手册扔给向量库,问一个具体问题,搜出来的全是沾边但没用的内容 —— 关键信息要么被硬切块拆碎了,要么藏在几十条结果的最下面。语义相似≠真正相关,这个…

2026/7/28 0:00:29阅读更多 →
抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

2026年做短视频运营,从抖音上扒文案早就不是偷偷抄笔记的事了。我刚开始做内容的时候,每天刷半小时抖音,手动把爆款视频的口播敲进备忘录,一条2分钟的视频得花十来分钟,碰到语速快的还要反复回听。后来试了一圈工具&am…

2026/7/28 0:00:29阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/27 16:57:54阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/28 3:17:03阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/28 2:35:58阅读更多 →