uva 712
2015-11-20 17:55
260 查看
题目大意:给出一个树的层数和一个数的叶子节点的值分别是什么,然后给出类似于哈夫曼树的编码 然后按照编码去输出叶子节点的值是多少。
思路:
把编码变成二进制之后,就是叶子就节点所对应的下标。。
思路:
把编码变成二进制之后,就是叶子就节点所对应的下标。。
#include <iostream> using namespace std; #include <string> #include <cmath> #include <cstring> #include <cstdio> #include <cstdlib> char rec[150][10]; int i; int sum1[150]; void solve() { int j = 0; int t = 0, k = 0, sum = 0, p = 0; char c; for (j = 0; j < i ; j++){ sum = 0; k = 0; for (t = strlen(rec[j])-1; t >= 0; t--){ int h = rec[j][t] - 48; sum = sum + h * pow(2, k++); } sum1[p++] = sum; } } int main() { int n, m, flag = 0; char s[30], leafs[150]; while (scanf("%d", &n) && n) { getchar(); gets(s); scanf("%s", leafs); scanf("%d", &m); i = 0; flag++; memset(rec, '\0', 150 * 10 * sizeof(char)); while (m--) { scanf("%s", rec[i++]); } solve(); printf("S-Tree #%d:\n", flag); for (int q = 0; q < i; q++) printf("%c", leafs[sum1[q]]); printf("\n\n"); } return 0; }
相关文章推荐
- Sublime Text 3 快捷键精华版
- IBatis.Net学习笔记七--日志处理
- 自定义iWatch App点击Glance后的跳转页
- Android应用加入微信分享
- 【详解】添加分渠道注册量显示
- http://pkgs.org/
- Packet for query is too large (41477246 > 167772). 数据库写入数据过大
- Shader Stages
- numpy函数解析
- hdoj 水仙花数
- AFNetWorking 数据请求、数据上传、网络监控
- IBatis.Net学习笔记六--再谈查询
- jquery判断单选按钮radio是否选中的方法
- windows系统快捷操作の基础篇
- 分享功能使用的UIPopoverController在iOS9 过期,替换为popoverPresentationController
- 创建单例模式(Singleton)的几种方式
- maven的作用及配置
- 解决Xcode之 Could no insert new outlet connection 的问题
- 【mysql】模糊查询的使用
- Play Framework 2 with Scala, Anorm, JSON, CoffeeScript, jQuery & Heroku