hdu1053
#include<iostream>
#include<algorithm>
using namespace std;
bool cmp(int a,int b)
{
return a>b; //从大到小排序
}
int a[30],m;
char s[1005];
int huffman()
{
int n,i,t;
memset(a,0,sizeof(a));
for(i=0;i<m;i++) //统计频率
if(s[i]=='_')
a[0]++;
else
a[s[i]-'A'+1]++;
sort(a,a+27,cmp); //频率从小到大排序
for(i=0;;i++)
if(!a[i])
break;
n=i;
t=0;
for(i=n-1;i>0;i--) //注意频率最低的编码为全1,即类似于111111...
{
a[i-1]=a[i]+a[i-1]; //构造huffman树的思想
t+=a[i-1];
sort(a,a+i,cmp);
}
if(n==1)
t=a[0];
return t;
}
int main()
{
int t;
while(gets(s)&& strcmp("END",s))
{
m=strlen(s);
t=huffman();
printf("%d %d %.1lf\n",8*m,t,8.0*m/t);
}
return 0;
}
hdu1053的更多相关文章
- HDU-1053:Advanced Fruits(LCS+路径保存)
链接:HDU-1053:Advanced Fruits 题意:将两个字符串合成一个串,不改变原串的相对顺序,可将相同字母合成一个,求合成后最短的字符串. 题解:LCS有三种状态转移方式,将每个点的状态 ...
- *HDU1053 哈夫曼编码
Entropy Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Sub ...
随机推荐
- POJ 3070 矩阵mob
. 矩阵高速幂想法与快速幂相同 #include<iostream> #include<cstdio> #include<cstring> #define MOD ...
- matlab对点云旋转平移
1.显示茶壶点云 ptCloud = pcread('teapot.ply');figure(1)pcshow(ptCloud); title('Teapot'); 2.Create a transf ...
- 仿联想商城laravel实战---1、仿联想商城需求和数据库设计(lavarel如何搭建项目)
仿联想商城laravel实战---1.仿联想商城需求和数据库设计(lavarel如何搭建项目) 一.总结 一句话总结: composer引入lavarel.配置域名.配置apache 1.项目名 le ...
- C++(九)— 虚函数、纯虚函数、虚析构函数
1.虚函数 原因:通过指针调用成员函数时,只能访问到基类的同名成员函数.在同名覆盖现象中,通过某个类的对象(指针及引用)调用同名函数,编译器会将该调用静态联编到该类的同名函数,也就是说,通过基类对象指 ...
- HTML5调用百度地图API进行地理定位实例
自从HTML5的标准确定以后,越来越多的网站使用HTML5来进行开发.虽然对HTML5支持的浏览器不是很多,但是依然抵挡不了大伙对HTML5开发的热情.今天为大家带来的是使用HTML5调用百度地图AP ...
- Redis命令参考之复制(Replication)
Redis 支持简单且易用的主从复制(master-slave replication)功能, 该功能可以让从服务器(slave server)成为主服务器(master server)的精确复制品. ...
- Saiku_学习_02_Schema Workbench 开发mdx和模式文件
一.前言 saiku的查询都是通过cube来进行的.因此每当我们要进行一次多维度查询时,都要先修改xml.上传.重启才能生效,不仅效率低,还不利于学习和理解MDX和模式文件. 通过 workbench ...
- Idea_学习_01_Idea激活
一.激活—激活码 下载地址:官网 1.注册码 http://idea.lanyus.com/ 二.激活—license server 1. (推荐) 弹窗中选择最后一个页面license server ...
- FFMPEG内存操作(二)从内存中读取数及数据格式的转换
相关博客列表: FFMPEG内存操作(一) avio_reading.c 回调读取数据到内存解析 FFMPEG内存操作(二)从内存中读取数及数据格式的转换 FFmpeg内存操作(三)内存转码器 在雷神 ...
- 搭建 Http Dynamic Streaming 点播/直播服务器
1. HTTP Origin Module的处理数据流: a) 客户端发送媒体索引请求到Apache.例如: http://www.example.com/media/ ...