小藍(lán)得到了一副大小為 M × N 的格子地圖,可以將其視作一個(gè)只包含字符‘0’(代表海水)和 ‘1’(代表陸地)的二維數(shù)組,地圖之外可以視作全部是海水,每個(gè)島嶼由在上/下/左/右四個(gè)方向上相鄰的 ‘1’ 相連接而形成。
在島嶼 A 所占據(jù)的格子中,如果可以從中選出 k 個(gè)不同的格子,使得他們的坐標(biāo)能夠組成一個(gè)這樣的排列:(x0, y0),(x1, y1), . . . ,(xk?1, yk?1),其中(x(i+1)%k , y(i+1)%k) 是由 (xi , yi) 通過(guò)上/下/左/右移動(dòng)一次得來(lái)的 (0 ≤ i ≤ k ? 1),
此時(shí)這 k 個(gè)格子就構(gòu)成了一個(gè) “環(huán)”。如果另一個(gè)島嶼 B 所占據(jù)的格子全部位于這個(gè) “環(huán)” 內(nèi)部,此時(shí)我們將島嶼 B 視作是島嶼 A 的子島嶼。若 B 是 A 的子島嶼,C 又是 B 的子島嶼,那 C 也是 A 的子島嶼。
請(qǐng)問(wèn)這個(gè)地圖上共有多少個(gè)島嶼?在進(jìn)行統(tǒng)計(jì)時(shí)不需要統(tǒng)計(jì)子島嶼的數(shù)目。