6_11 四分樹(UVa297)<四分樹>


一幅圖有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’),直接將顏色數組賦值即可。當樹建完時,顏色數組即染色

完畢。將兩棵樹依次染色到同一數組,統計黑色節點個數即可。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM