切換
舊版
前往
大廳
主題

ZeroJudge - e971: 2. 梗圖著色 (Coloring) 解題心得

Not In My Back Yard | 2020-04-26 21:11:41 | 巴幣 0 | 人氣 343

題目連結:


題目大意:
第一列給定兩正整數 m 、 n ,代表有一個 m 列 n 行的「圖片」。接著有 m 列,每列有 n 個為0 或是 1 的數字,前者代表白色、後者為黑色。

現在請將圖片的每一列由左至右掃過,每找到一對數字 1 (也就是兩個黑色),就將兩個黑色中間的數字都轉為數字 1 。然後跳過這一對 1 去找下一對。

最後輸出該「圖片」的樣子。



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

範例輸入二:
4 7
0 1 1 0 0 0 0
0 1 1 0 0 0 1
1 0 1 0 0 1 1
0 0 0 0 0 0 0


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

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


解題思維:
就是單純的掃過每一列去找每一對黑色。

可以用一個變數表示目前有沒有找到「左邊」的黑色。如果遇到黑色而且沒有遇過「左邊」的黑色,代表現在這個黑色是新一對的「左邊」;反之,有遇過左邊則代表現在這個黑色是當前對的「右邊」,則將「左邊」到「右邊」的數字全部改成 1 。改完之後將紀錄「左邊」的變數設為「無」,代表要找下一對。

此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

相關創作

更多創作