1172_哈夫曼树
来源:互联网 发布:软件著作权范文 编辑:程序博客网 时间:2024/06/07 09:42
// 1172_哈夫曼树.cpp : 定义控制台应用程序的入口点。//题目1172:哈夫曼树//时间限制:1 秒内存限制:32 兆特殊判题:否提交:8812解决:3976//题目描述://哈夫曼树,第一行输入一个数n,表示叶结点的个数。需要用这些叶结点生成哈夫曼树,根据哈夫曼树的概念,这些结点有权值,即weight,题目需要输出所有结点的值与权值的乘积之和。//输入://输入有多组数据。//每组第一行输入一个数n,接着输入n个叶节点(叶节点权值不超过100,2<=n<=1000)。//输出://输出权值。//样例输入://5 //1 2 2 5 9//样例输出://37//来源://2010年北京邮电大学计算机研究生机试真题#include "stdafx.h"#include "stdio.h"#include "stdlib.h"int compare(const void *p,const void *q){ return *(int *)q - *(int *)p;}int main(){ int n; int leaf[102]; while(scanf("%d",&n)!=EOF) { for (int i=0;i<n;i++) { scanf("%d",&leaf[i]); } qsort(leaf,n,sizeof(int),compare); int t = n; int tree_weight = 0; while(t--) { int min_sum = leaf[t] + leaf[t-1]; tree_weight += min_sum; int temp = t-2; while(temp>=0 && min_sum>leaf[temp]) { leaf[temp+1] = leaf[temp]; temp--; } leaf[temp+1] = min_sum; if(t==1) break; } printf("%d\n",tree_weight); } return 0;}
0 0
- 1172_哈夫曼树
- 九度题目1172_哈夫曼树
- ^_^
- ^_^
- ^_^
- ^_^
- *_&
- ...!@~....!@#....+_#%.
- ^_^
- ^_^
- ^_^
- ^_^
- *_*
- ^_^
- ^_^
- ~~~~(>_<)~~~~
- ^_^!
- -_-|||
- 关于SharedPreferences简单工具类----(2)
- App上架被拒原因整理
- 【matlab】help single
- Hello World
- ul ol
- 1172_哈夫曼树
- TCP/IP三次握手、四次挥手
- Android 用MediaCodec实现视频硬解码
- CSS3 ::selection 选择器
- HTML DOM基本操作,附js代码
- acm sdut 关于顺序表基础操作
- Servlet与GenericServlet和HttpServlet的关系
- 从源码解析Python的Flask框架中request对象的用法
- mac下nodejs 更新到最新版本的最新方法