数据结构
文章平均质量分 56
1
从入门到入坑
等到OneNote容量不够, 再把存货搬上来
展开
-
AcWing 148. 合并果子 (贪心 哈夫曼树)
题目描述 原题链接 分析 此题不是区间DP(区间DPDPDP的限制是每次只能合并相邻的两堆) 题目要求一个最小的体力耗费值, 可以采取贪心的策略: 在每次合并时都耗费最少的体力, 即选当前数目最少的两堆(((用优先队列维护一个小根堆即可),),), 从而求出最优解 此题是一个哈夫曼树的模型. 要求的最小的体力耗费值, 其实是哈夫曼树的带权路径长度W=W=W= 所有分支点权值之和 也可参考Y总视频讲解 实现 #include <cstdio> #include <iostre原创 2021-02-17 11:13:14 · 103 阅读 · 0 评论 -
PAT 1004 Counting Leaves 统计树的每层叶子节点的个数
文章目录题目描述分析坑点实现 题目描述 原题链接 题目大意是让求出树中每层的叶子结点数 分析 我们可以根据输入,处理出每个节点所在深度, 即 该节点深度 = 父节点深度 + 1 从而选择BFS或者DFS遍历整棵树, 求出每层的叶子结点数, 从而维护出一个cnt[i]记录第i层的叶子节点数 坑点 1.非叶子节点的序号不一定按顺序给出, 所以要在输入完成后, 再处理每个节点的层次. (借用一下大佬的图) 图的出处 2. 若采用下述方法, 注意在只有一个节点的时候, 特判输出"1" 实现 #原创 2021-01-13 22:00:20 · 129 阅读 · 0 评论 -
PTA 数据结构 哈夫曼树与哈夫曼编码
文章目录题目描述输入格式输出格式样例一点说明想法实现 题目描述 题目背景:介绍什么是哈夫曼树和哈夫曼编码, 不影响做题 哈夫曼树(Huffman Tree)又称最优二叉树,是一种带权路径长度最短的二叉树。所谓树的带权路径长度,就是树中所有的叶结点的权值乘上其到根结点的路径长度(若根结点为0层,叶结点到根结点的路径长度为叶结点的层数)。树的路径长度是从树根到每一结点的路径长度之和,记为WPL=(W1*L1+W2*L2+W3*L3+...+Wn*Ln),N个权值Wi(i=1,2,...n)构成一棵有N个叶结点的原创 2020-12-13 16:40:58 · 3337 阅读 · 1 评论 -
天梯赛 L2-3 完全二叉树的层序遍历
文章目录题目描述输入输出数据范围样例想法实现 题目描述 一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是完美二叉树。对于深度为 D 的,有 N 个结点的二叉树,若其结点对应于相同深度完美二叉树的层序遍历的前 N 个结点,这样的树就是完全二叉树。 给定一棵完全二叉树的后序遍历,请你给出这棵树的层序遍历结果。 输入 输入在第一行中给出正整数 N(≤30),即树中结点个数。第二行给出后序遍历序列,为 N 个不超过 100 的正整数。同一行中所有数字都以空格分隔。 输出 在一行中输出该树原创 2020-12-10 23:33:32 · 397 阅读 · 0 评论