UVa712 S-Trees (二叉树)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UVa712 S-Trees (二叉树)相关的知识,希望对你有一定的参考价值。

链接:http://acm.hust.edu.cn/vjudge/problem/19200
分析:这题那个xi有啥用?二叉树正好对应二进制,将根结点表示为0,左子树就是i*2+0,右子树为i*2+1,所有叶子结点正好可以用0~(1<<n)-1(n为层数,根结点为第0层)的编号表示。

 1 #include <cstdio>
 2 
 3 int main() {
 4     int n, kase = 0;
 5     while (scanf("%d", &n) == 1 && n) {
 6         int x[10]; char buf[200];
 7         for (int i = 0; i < n; i++) scanf("%s", buf);
 8         int m = 1 << n; int leaf[200];
 9         scanf("%s", buf);
10         for (int i = 0; i < m; i++)
11             leaf[i] = buf[i] - 0;
12         printf("S-Tree #%d:\n", ++kase);
13         int q; scanf("%d", &q);
14         int dir[10];
15         for (int i = 0; i < q; i++) {
16             scanf("%s", buf);
17             int v = 0;
18             for (int j = 0; j < n; j++)
19                 v = v * 2 + buf[j] - 0;
20             printf("%d", leaf[v]);
21         }
22         printf("\n\n");
23     }
24     return 0;
25 }

 

以上是关于UVa712 S-Trees (二叉树)的主要内容,如果未能解决你的问题,请参考以下文章

UVa712 - S-Trees

UVA-712-二叉树

S-Tree (UVa 712) 二叉树

POJ 题目1105 S-Trees(二叉树模拟)

二叉树重建[UVA-536]

Uva--679 Dropping Balls(二叉树的编号)