一幅圖有1024個點, 可以對圖平均分成4塊, 並且子圖也可以再往下分, 直到一個子圖表示一個點。 f表示這塊子圖填滿, p表示它還有4個子圖, e表示沒有子圖(當然啦, 它也沒有填滿)。 給定兩個字符串(其實就是兩幅圖, 兩棵樹), 求把兩圖合並后的圖的黑點數。
Example Input:
3
ppeeefpffeefe
pefepeefe
peeef
peefe
peeef
peepefefe
Example Output:
There are 640 black pixels.
There are 512 black pixels.
There are 384 black pixels.
[分析]
搜索、數據結構。把圖片分成1024塊1*1的小正方形,建立一位數組記錄對應小正方形的顏色。
利用遞歸根據字符串,建立相應四叉樹。在建樹的過程中,樹節點計算當前節點對應的小正方形
編號區間。這里處理類似於線段樹,將父節點的區間等分成4份分別對應四棵子樹的編號區間。
建樹到達葉子時(color為‘f’或者‘e’),直接將顏色數組賦值即可。當樹建完時,顏色數組即染色
完畢。將兩棵樹依次染色到同一數組,統計黑色節點個數即可。