看不到內容請點這:
C++
https://hackmd.io/owAW7zoGTo66CZ2xG78V-A#%E6%B3%9B%E6%B4%AA%E6%BC%94%E7%AE%97%E6%B3%95%E7%AF%84%E4%BE%8B%E9%A1%8C-%E2%80%94-ITSA--Arrayc-151200-C_AR154-%E6%98%93%E6%84%9F%E6%9F%93%E8%A2%AB%E5%8C%85%E5%9C%8D%E7%9A%84%E4%BA%BA
Time Limit: 1 seconds
問題描述 :
在一個 2 維的空間中,有一群病毒(用大寫英文字母 X 表示),還有一群人類(用數字 0 表示)。若這群人則被病毒包圍了,那他們都會被感染成木頭人(用大寫的 I 表示)。
舉例而言:
舉例而言:
Table 1 中只有 1 位人類,而且它被病毒包圍,所以這位人類會被感染,成為木頭人,其結果如 Table 3 所示。
Table 2 中也只有 1 位人類,但它沒被病毒包圍,所以不會被感染。因此結果如 Table 4 所示。
給你一個 2 維的空間,請你撰寫程式,將所有被感染的人類都換成木頭人。
輸入說明 :
輸入是一個 7 X 7 的 2 維盤面。
每一行有 7 個字母,每個字母不是 X ,或是數字 0 。每個字母用空白隔開。
輸出說明 :
將輸入盤面中被感染的人類改為大寫的 I ,並且輸出。
範例 :
輸入範例 | 輸出範例 |
X X X X X X X X X X X X X X X X X X X X X X X 0 X X X X X X X X X X X X X X X X X X X X X X X X X | X X X X X X X X X X X X X X X X X X X X X X X I X X X X X X X X X X X X X X X X X X X X X X X X X |
留意點:
//只要在邊綠的人,就不會被感染;
//就算是被包圍 ( 僅四方位 ) 的團體,仍舊會全部感染;
//只要和邊緣的人有相連 ( 相連指的是走上、下、左、右,任一邊可以相連即可 ) 就不會被感染;
這題的寫法有兩種,僅寫出差異點
/*只要在邊緣找到一個 0,就由這個 0 開始使用 flood fill 演算法走訪下去。凡走到 0,這個 0 就可以標記為「非感染」。到最後,剩下的 0 就是會被感染的人了。*/