北大ACM3253 - Fence Repair(赫夫曼编码)
来源:互联网 发布:好听的英文名字 知乎 编辑:程序博客网 时间:2024/06/05 07:07
1.1 算法分析
赫夫曼编码
由于这个问题,考察的是赫夫曼编码,所以优先级队列就直接使用STL的了。
1.2 代码
/* * * Introduction : ACM of pku * ID : 3253 * alg : Huffman * Author : Gykimo * Date : 20121203 * */#include <stdlib.h>#include <stdio.h>#include <queue>using namespace std;struct cmp{bool operator ()(int x, int y){return x > y;}};int planks_num = 0;int *planks = NULL;long long min_amount = 0;void readLine(){scanf("%d", &planks_num);planks = (int *)malloc(planks_num * sizeof(int));for(int i=0; i<planks_num; i++){scanf("%d", planks+i);}}void display(){printf("%lld\n", min_amount);}void huffman(){priority_queue<int, vector<int>, cmp> q(planks, planks+planks_num);int first, second, sum;while(q.size() > 1){first = q.top();q.pop();second = q.top();q.pop();sum = first + second;q.push(sum);min_amount += sum;}}int main(){readLine();huffman();display();return 0;}
1.3 运行结果
724K 47MS
1.4 总结
主要注意, 结果不能是int,容易过界。
- 北大ACM3253 - Fence Repair(赫夫曼编码)
- POJ 3253 Fence Repair (哈夫曼编码基础)
- Fence Repair(哈夫曼树)
- POJ 3253 Fence Repair(贪心, Huffman编码)
- POJ 3253(Fence Repair)
- POJ3253 Fence Repair(huffman)
- poj3253 Fence Repair(哈弗曼)
- Fence Repair (优先队列)
- Fence Repair
- Fence Repair
- Fence Repair
- Fence Repair
- Fence Repair
- Fence Repair
- Fence Repair
- Fence Repair
- Fence Repair
- Fence repair
- 物料清单
- 字符串处理总结之一(C#String类)
- Git下载android4.0源码并编译笔记
- 10个出色的NoSQL数据库
- 基础加强_静态导入/可变参数/增强for循环/基本类型包装类
- 北大ACM3253 - Fence Repair(赫夫曼编码)
- android面试三
- 程序三:3D空间中移动图像
- 用jxl操作Excel文件
- 多台Mac电脑使用同一个apple开发者账号测试
- 高级消息队(AMQP)之 RabbitMQ
- 教你把Windows 8安装到VHD里,并且从VHD启动
- Hadoop为何不适合小文件
- 如何提高自己的专注度