題目連結:
題目大意:
輸入第一列給定兩正整數 R 、 C (1 ≦ R 、 C ≦ 9),代表有一個 R × C 大小的區塊。接著有 R 列輸入,每列給定 C 個整數(皆介於 0 ~ 100000),代表每個區塊的熱門度。其中熱門度為 0 的區塊會因為其周遭區塊(上下左右)的熱門度而上升
周遭區域熱門度總和 ÷ 周遭區域數
單位熱門度。如果周遭有區塊熱門度為 0 ,則該區塊不會計入區塊數中。如果有區塊其周遭區塊數為 0 ,則該區域熱門度依舊為 0 。
而其他熱門度非 0 區域則不更動。而且所有更動為同時發生。
請輸出更動後,每個區塊的熱門度。
範例輸入:
範例輸入 #1
3 3
2 0 6
6 8 4
2 2 6
範例輸入 #2
3 4
0 1 3 9
0 12 14 79
1 123 12 12
範例輸入 #3
5 5
0 0 0 0 0
0 0 0 0 0
1 0 0 0 0
5 9 5 5 9
9 6 5 5 9
範例輸出:
範例輸出 #1
2 5 6
6 8 4
2 2 6
範例輸出 #2
1 1 3 9
6 12 14 79
1 123 12 12
範例輸出 #3
0 0 0 0 0
1 0 0 0 0
1 5 5 5 9
5 9 5 5 9
9 6 5 5 9
解題思維:
有點類似踩地雷(如
這題)的方式去統計。不過本題不是九宮格範圍,只有上下左右四個位置。對於每個數值為 0 的位置,去看周遭有多少格不為 0 (記得注意會不會超出範圍,超出範圍的位置不計)。
然後如題目所述將周遭熱門度相加並除以區塊數即可得本格的熱門度。不過當區域數為 0 時,熱門度依舊是 0 。
此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。