洛谷:P1087:FBI树


洛谷:P1087:FBI树

Table of Contents

题目

P1087:FBI树

分析

这道题目的关键,是读懂题意。按照题目的样本输入:

3
10001011

那么构造出来的二叉树是:

graph TD A["F(10001011)"] B["F(1000)"] C["F(1011)"] D["F(10)"] E["B(00)"] F["F(10)"] G["I(11)"] H["I(1)"] I["B(0)"] J["B(0)"] K["B(0)"] L["I(1)"] M["B(0)"] N["I(1)"] O["I(1)"] A --> B A --> C B --> D B --> E D --> H D --> I E --> J E --> K C --> F C --> G F --> L F --> M G --> N G --> O

也就是说,这8个字符构成了最下面的左右两个叶子节点,然后逐渐向上构成父节点,再构成父节点……一直到最后的根节点。这是一个完美二叉树。其各层节点数是:\(2^3\rightarrow 2^2\rightarrow 2^1\rightarrow 2^0\)。所以其高度是4,总共有\(2^4-1=15\)个节点。这15个节点各自有自己的类型(F/B/I),所以最终要输出15个字符。

后续遍历的顺序是:“左右根”。所以,添加类型字符的顺序也是如此。按照样本数据,输出就是:IBFBBBFIBFIIIFF

答案

Solution

思考

本题有点意思。

上一篇 下一篇