主站
DreamJudge
院校信息
专业题库
模拟考试
机试真题
上岸课程
讨论区
兑换中心
登录
注册
上岸
以下题解仅供学习参考使用。
抄袭、复制题解,以达到刷AC率/AC数量或其他目的的行为,在N诺是严格禁止的。
N诺非常重视学术诚信。此类行为将会导致您成为作弊者。具体细则请查看N诺社区规则。
为欢几何
2024年4月8日 16:17
哈夫曼编码 题解:通过率50%,哪种情况没考虑到呢?
P1562
回复 2
|
赞 0
|
浏览 601
//输出字符串最佳无前缀可变长度编码的位长度 #include<bits/stdc++.h> using namespace std; int main() { string s; while(cin >> s) { if(s == "END") break; int len ...
Cookie‘s AE86
2024年3月25日 15:43
哈夫曼编码 题解:c++优先队列实现,注意全为同一字符的特殊情况,例如
P1562
回复 0
|
赞 0
|
浏览 624
#include<bits/stdc++.h> using namespace std; void func(string s){ int len = s.size(); set<char> myset; for(int i = 0; i < len ;i++) myset.insert(s[i]); //获得每种字符使用频率的优先队列 priority_queue<int, vector<int>, greater<int>> pq; ...
xx_about123456
2022年8月8日 11:16
哈夫曼编码的坑
P1562
回复 1
|
赞 3
|
浏览 5.2k
思路: 通过遍历字符串,统计各个字符的数量,利用map记录 遍历map,将map的值(字符数量)加入优先队列 常规操作,两个小的数字出队,加上的和 进入队列,直到队列长度为1 坑就在于,队列的起始长度可能为1,所以需要单独处理 代码 #include <bits/stdc++.h> using namespace std; int main() { priority_queue<int,vector<int>,greater<int>> q; //升序排列 ...
快乐小土狗
2022年9月26日 12:41
题解:哈弗曼编码
P1562
回复 0
|
赞 2
|
浏览 5.7k
#include<bits/stdc++.h> using namespace std; string str; int len, num[30]; int bfs() { priority_queue<int, vector<int>, greater<int> > q; // 创建优先队列,从小到大排序 for(int i = 0; i < 30; i++) { if(num[i]) q.push(num[i]); // 放入每个字母的个数 } int sum = ...
wjw
2022年7月8日 21:54
哈夫曼编码应用
P1562
回复 0
|
赞 1
|
浏览 4.8k
此题本质就是将各个字母出现次数作为叶节点权值,然后求带权路径长度,最后还是通过创建小根堆计算非叶节点大小z
Dear_Mr_He
2022年2月5日 00:47
P1562 哈夫曼编码
P1562
回复 1
|
赞 1
|
浏览 5.2k
#include<iostream> #include<cstring> #include<queue> #include<map> using namespace std; struct node { int x; // 定义优先队列的比较关系,这里我们定义的是小根堆 bool operator < (const node& a) const { return x > a.x; } }; int main() { char text[100]; ...
LVBU123
2021年3月23日 15:38
优先队列c++
P1562
回复 0
|
赞 1
|
浏览 8.0k
#include<bits/stdc++.h> using namespace std; int main(){ string s; while(cin>>s){ if(s=="END") break; priority_queue<int,vector<int>,greater<int>> q; int a[128] = {0}; int sum = 0; int weishu = 8*s.size(); double ratio; for(int i=0;i<s...
James
2021年1月31日 20:32
WPL结论
P1562
回复 0
|
赞 0
|
浏览 8.6k
#include <iostream> #include <stdio.h> #include <string> #include <queue> #include <map> #include <iterator> using namespace std; // 利用结论 非叶子节点结点值的和等于WPL 不用一个个计算 int main() { string s; while(cin>&g...
题目
哈夫曼编码
题解数量
8
发布题解
热门题解
1
哈夫曼编码的坑
2
题解:哈弗曼编码
3
哈夫曼编码应用
4
优先队列c++
5
P1562 哈夫曼编码
6
哈夫曼编码 题解:通过率50%,哪种情况没考虑到呢?
7
WPL结论
8
哈夫曼编码 题解:c++优先队列实现,注意全为同一字符的特殊情况,例如:BBBBBBBBBB