切換
舊版
前往
大廳
主題

ZeroJudge - e787: b2.尋寶地圖(Map) 解題心得

Not In My Back Yard | 2020-06-06 00:36:26 | 巴幣 4 | 人氣 383

題目連結:


題目大意:
第一列給定兩正整數 N 、 M (2 ≦ N 、 M ≦ 100),代表有一個 N 列 M 行的地圖。接著有 N 列輸入,每列給定 M 個數字(只會是 0 或是 1),代表轉換後的地圖的內容。再接著還有 N 列輸入,每列同樣給定 M 個數字(同樣也只會是 0 或是 1 ),代表轉換圖的內容。

對於地圖中某個位置 (r, c) ,如果轉換圖中同列同行(第 r 列跟第 c 行)的所有數字之總和為奇數,則該位置需要將 0 變 1 、將 1 變 0 。

請根據轉換圖,將地圖還原成原本的樣子。



範例輸入:
範例輸入一:
3 4
0 0 1 1
1 0 0 0
1 1 0 1
1 0 0 1
0 0 1 0
1 0 0 0

範例輸入二:
2 5
1 0 1 0 1
0 1 0 1 0
1 1 1 1 1
0 0 0 0 0


範例輸出:
範例輸出一:
1 0 0 1
0 1 1 0
1 0 0 1

範例輸出二:
0 1 0 1 0
1 0 1 0 1


解題思維:
在輸入轉換圖的時候就統計每列、每行各自的總和。

然後用一個雙重迴圈跑過一次地圖的時候,對於每個位置,將前面統計的該列以及行的總和再加總,扣除掉現在位置的值(因為前面的列 + 行,現在的位置之值會多算一次),即可根據題目的條件判斷(該數為奇數還是偶數)是否要 0 變 1 、 1 變 0 。
 
此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

更多創作