四叉树

提交数: 18, 通过率: 38.89%, 平均分: 40.56

题目描述:

      假设有一个32*32的黑白图像,那么这个黑白图像是可以用一棵四叉树表现出来的。方法是按行、列等分成两份,就一共有四份。按图中的序号表示它的子节点。若某个子节点全黑或全白,则用黑(f,即full)和白(p,即empty)表示,若一个子节点区域有黑有白,就用灰节点(p)表示,并继续递归其子节点。例如下图表示。

                                                 1510059385513514800.png

      现在给定两棵四叉树的前序遍历,请把它们转化成图以后相加(例如上图),并求出转化成图以后黑色像素的个数。注意:整个图是1024个像素。

输入格式:

      第一行一个正整数,表示输入有n(n<=10)组数据。随后第2行到第n*2+1行,第i组数据为第i*2行和第i*2+1行,两个字符串,表示两棵树的前序遍历。输入保证合法,不需要校验。

输出格式:

       一共n行,每行一个字串,格式为“There are number black pixels.”。number为这个数据点中所含的黑色像素的个数。

样例输入:

3
ppeeefpffeefe
pefepeefe
peeef
peefe
peeef
peepefefe

样例输出:

There are 640 black pixels.
There are 512 black pixels.
There are 384 black pixels.

提示:

若无法看懂样例,可以告诉你:第一组数据与说明中的图相符合。

本题除n以外没有给定其他数据范围。因为其他数据范围可通过题意推导所得。

时间限制: 1000ms
空间限制: 256MB

来源: by UVA