HDU2527 Safe Or Unsafe(哈夫曼的一道简单题)
Input输入有多组case,首先是一个数字n表示有n组数据,然后每一组数据是有一个数值m(integer),和一串字符串没有空格只有包含小写字母组成!Output如果字符串的编码值小于等于给定的值则输出yes,否则输出no。
Sample Input
2 12 helloworld 66 ithinkyoucandoit
Sample Output
no yes 就是用哈夫曼树的思想求出新建的非叶子节点的权值之和,然后与m进行比较,若比m小,则是安全的。
#include<iostream> #include<cstdio> #include<map> #include<algorithm> #include<cstring> #include<queue> using namespace std; priority_queue<int,vector<int>,greater<int> >q; int main() {int t;while(cin>>t){while(t--){int m,len=0,a[100001];memset(a,0,sizeof(a));string str;cin>>m>>str;for(int i=0;i<str.size();i++){a[str[i]-'a']++;}for(int i=0;i<26;i++){if(a[i]!=0){q.push(a[i]);len++;}}int sum=0;while(q.size()>1){int min1=q.top();q.pop();int min2=q.top();q.pop();sum+=min1+min2;q.push(min1+min2);}if(len==1){//注意此处的特殊情况sum=q.top();}if(m<=sum)cout<<"no"<<endl;elsecout<<"yes"<<endl;while(!q.empty()){q.pop();}}}return 0; }
转载于:https://www.cnblogs.com/LJHAHA/p/11158765.html
HDU2527 Safe Or Unsafe(哈夫曼的一道简单题)相关推荐
- HDU2527 Safe Or Unsafe【哈夫曼编码】
Safe Or Unsafe Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tota ...
- hdu1053 Entropy hdu2527 Safe Or Unsafe
裸裸的哈弗曼编码,求出哈弗曼编码的路径长度,注意整个字符串为一种字符的情况 View Code #include<iostream>#include<queue>#includ ...
- 哈夫曼编码的简单实例
最近有被要求写一个哈夫曼的编码和解码的程序.简单的是一个实例就行了,那我就动手写了.刚开始还真的挺困难,虽然原理懂,但是捣鼓了好久还是得依靠网上的资源编写出了带有图形界面的简单哈夫曼编码实例. 构建哈 ...
- 数据结构——树、二叉树、森林、哈夫曼树、字符串模式匹配
%%%%%% 字符串模式匹配算法--详解KMP算法 https://blog.csdn.net/zc474235918/article/details/40474525 http://www.ruan ...
- 信息论4—无失真信源编码(非延长码,霍夫曼编码)
无失真信源编码 单义可译码 码字非奇异,码字序列非奇异. 单义可译定理--克拉夫不等式 非延长码(即时码,在无失真信源编码中,常采用此码) 延长码:部分码字是其它码字的前缀.100是10的延长码,01 ...
- Safe Or Unsafe(hdu2527)哈弗曼VS优先队列
Safe Or Unsafe Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) T ...
- 随手练——HDU Safe Or Unsafe (小根堆解决哈夫曼问题)
HDU 2527 :http://acm.hdu.edu.cn/showproblem.php?pid=2527 哈夫曼树,学完就忘得差不多了,题目的意思都没看懂,有时间复习下,看了别人的才知道是怎么 ...
- Python---哈夫曼树---Huffman Tree
今天要讲的是天才哈夫曼的哈夫曼编码,这是树形数据结构的一个典型应用. !!!敲黑板!!!哈夫曼树的构建以及编码方式将是我们的学习重点. 老方式,代码+解释,手把手教你Python完成哈夫曼编码的全过程 ...
- 优先级队列实现哈夫曼树的编码和译码
//优先级队列实现的哈夫曼树的编码和译码 #include<iostream> #include<queue> #include<string> using nam ...
最新文章
- ASP.NET Core macOS 环境配置 - ASP.NET Core 基础教程 - 简单教程,简单编程
- Tomcat启动超时问题Server Tomcat v7.0 Server at localhost was unable to start within 45 seconds
- 动画学信奥 漫画学算法 CSP-J入门级 (三)、算法(依据「NOI大纲」)
- dhcp服务器设置无线,无线网dhcp服务器设置
- mongo按季度统计_2020年第一季度电网工程设备材料信息价(完整版)
- 如何在Linux中安装Intel核显驱动?
- javaSE基础知识 知识点(一)
- 直线平面平行的判定和性质
- 突变注释工具SnpEff,Annovar,VEP,oncotator比较分析--转载
- Java 参数类型后面三个点,可变参数列表
- 2018大华软件竞赛——模拟赛——第二题
- excepted one 0f #, =>at line16,column 16(byte 311)
- OS系列——操作系统镜像加载BIOS固件工作原理详解
- ip地址为61.179.150.39/28,问其子网号为多少,广播号为多少,可用ip地址范围是多少
- JAVA 文件上传格式限制_关于servlet文件上传限制文件大小的问题,求高手帮忙
- 六大接口管理平台,总有一款适合你的!
- C_004 C语言 控制语句之分支语句
- 宝付旅行记二(宁夏银川)
- ResponseEntity进行下载
- 为什么软件外包不再“起作用”了