PTA_数据结构与算法题目集(中文)_7-9 Huffman Codes (30 分)_简洁版解法
📅 2026/7/28 15:29:29
👁️ 次浏览
题目地址题目分析我们在分析哈夫曼树建立规则后可知在所有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; }
博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…
📅 2026/7/28 15:29:29
博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…
📅 2026/7/28 15:29:29
根据逆波兰表示法,求表达式的值。
有效的运算符包括 , -, *, / 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。
说明:整数除法只保留整数部分。给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数…
📅 2026/7/28 15:29:29
1. 项目概述:FX5u控制4轴伺服定位组装线去年接手了一条挂扣自动组装产线的电气改造项目,核心需求是用三菱FX5u PLC同时控制4台伺服电机实现精确定位。这种多轴协同控制在包装、装配行业非常典型,但实际调试中遇到的同步性问题比预想中复杂得多…
📅 2026/7/28 16:45:13
1. 项目概述:当Q-learning遇上无人机三维路径规划在无人机自主导航领域,路径规划始终是核心挑战之一。传统A*、Dijkstra等算法在动态环境中表现受限,而强化学习中的Q-learning算法因其不需要环境先验模型的特性,在三维空间路径规划…
📅 2026/7/28 16:45:13
1. CMP工艺中的Dishing与Erosion现象概述在半导体制造领域,化学机械抛光(Chemical Mechanical Polishing, CMP)是晶圆平坦化处理的核心工艺。这个看似简单的物理化学过程,实际上隐藏着两个让工艺工程师夜不能寐的"双生子&quo…
📅 2026/7/28 16:45:13
OBS多路推流插件终极指南:如何一键实现多平台直播同步 【免费下载链接】obs-multi-rtmp OBS複数サイト同時配信プラグイン 项目地址: https://gitcode.com/gh_mirrors/ob/obs-multi-rtmp
你是否在为每次直播都要重复设置不同平台而感到烦恼?现在&…
📅 2026/7/28 16:45:13
这里的输出结果为1.再举个例子输入
4 2
1 3 2 5
输出
2说明:如果选择(1,3)那么剩下2和5不能比,只有一场
所以选择(1,2)和(3,5)可以打两场比赛思路…
📅 2026/7/28 16:45:13
1. 职场困境:技术专家为何遭遇边缘化?那天晚上11点,我收到老同事李明的消息:"我被调离核心项目组了。"这位年薪85万的高级工程师,刚过30岁生日,技术能力在团队里数一数二。但让他离开核心项目的不…
📅 2026/7/28 16:44:13
告别臃肿!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:45
做 RAG 的人应该都踩过这个致命的坑:把几百页的财报、法规、技术手册扔给向量库,问一个具体问题,搜出来的全是沾边但没用的内容 —— 关键信息要么被硬切块拆碎了,要么藏在几十条结果的最下面。语义相似≠真正相关,这个…
📅 2026/7/28 0:00:46
2026年做短视频运营,从抖音上扒文案早就不是偷偷抄笔记的事了。我刚开始做内容的时候,每天刷半小时抖音,手动把爆款视频的口播敲进备忘录,一条2分钟的视频得花十来分钟,碰到语速快的还要反复回听。后来试了一圈工具&am…
📅 2026/7/28 0:00:46
更多请点击:
https://codechina.net
第一章:AI帮助理解数学概念 人工智能正以前所未有的方式重塑数学学习的路径。通过自然语言处理与符号计算的深度融合,AI不仅能解析抽象定义,还能将定理、证明和几何直觉转化为可交互、可验证的…
📅 2026/7/28 1:13:29
1. 项目背景与核心价值去年参与的一个短剧项目让我深刻体会到传统创作流程的痛点:编剧团队花了三周打磨剧本,角色设计反复修改了七版,最后成片时又因为演员档期问题不得不临时调整分镜。这种低效的创作模式在快节奏的内容行业越来越难以为继。…
📅 2026/7/28 1:13:29
remix-i18next TypeScript类型安全实践:确保翻译键与类型定义同步 【免费下载链接】remix-i18next The easiest way to translate your React Router framework mode apps 项目地址: https://gitcode.com/gh_mirrors/re/remix-i18next
在开发多语言应用时&am…
📅 2026/7/28 1:13:29
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/28 7:13:45
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/27 17:12:43
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/28 5:13:40