APCS201810第3題DF-expression
zerojudge:https://zerojudge.tw/ShowProblem?problemid=f637
DF-express (深度優先圖像表示式) 是一個具有高度資料壓縮能力的四元樹表示法。雖然主要為二階黑白圖片所設計,但是透過位元平面 (bit-plane) 或是 3D 表示法,亦可用來壓縮灰階圖片。 本題中所處理的圖片為二階的黑白圖片,也就是每個像素非黑即白,沒有中間的灰色。圖片大小為 n×n,n 是 2 的冪次,也就是存在某個非負整數 k 使得 n = 2^k。 一個 n×n 的黑白影像可以用下列遞迴方式編碼: 如果每一格像素都是白色,我們用0來表示; 如果每一格像素都是黑色,我們用1來表示; 否則,並非每一格像素都同色,先將影像均等劃分為四個邊長為 n/2 的小正方形後,然後表示如下:先寫下2,之後依續接上左上、右上、左下、右下四塊的編碼。
一個壓縮後的影像會表示成一個由 0、1、2 組成的字串 S。在這個問題中,根據字串 S 以及影像尺寸 n,請計算原始影像中有多少個像素是 1。
輸入說明
測試資料有兩行,第一行是影像的 DF-expression S,是由連續的 0、1、2 組成的字串,字串長度小於 1,100,000。第二行為正整數 n,1 ≤ n ≤ 1024,代表影像的大小為 n × n,其中 n 必為 2 的冪次。
輸出說明
請輸出該影像中有多少像素是 1。
輸入範例1
2200101020110
4
輸出範例1
7
輸入範例2
2020020100010
8
輸出範例2
17
解題策略
遞迴