切換
舊版
前往
大廳
主題

ZeroJudge - d925: 平均高度 解題心得

Not In My Back Yard | 2018-12-08 21:38:01 | 巴幣 0 | 人氣 106

題目連結:


題目大意:
給定兩正整數 M 、 N ( 1 ≦ M、N ≦ 50, 000 ),代表有一 M * N 的方格地圖,且一開始每一格的高度皆為 0 。

並給定一正整數 T ( 1 ≦ T ≦ 10 ^ 5 ),代表接下來有T列的輸入。每一列有三個正整數 X 、 Y 、 K ( 1 ≦ X ≦ M 、 1 ≦ Y ≦ N 、 1 ≦ K ≦ 2 ^ 10 ),代表有一大力士以 K 的力量槌了位於( X, Y )的格子。

而大力士若以 K 的力量槌某一格子,則此格子會下降 K 單位的高度,但是周圍的格子(上下左右及其對角格子)會上升 K 個單位。

求最後此方格地圖的平均高度為何?(將結果四捨五入並精確到小數第二位)



範例輸入:
3 3 2
2 2 1
2 2 1



範例輸出:
1.56



解題思維:
首先,這題的地圖是有很多類型的,所有類型如下:
類型一, M = N = 1:只能敲那麼一格,所以高度只降不升

類型二, M 、 N 其中一者為 1 :因為是一條線的形狀,所以敲的地方有頭、尾跟邊的中間之情況。頭尾的情況,只影響了一格,跟敲的那一格抵銷,總高度不變邊的中間則是影響兩格,扣掉敲的那一格之量,因此總高度 + K

類型三,殘餘的可能情況:因為不是以上特殊形狀,所以大部分(除了某些特殊情況,但是可以歸於此類)都會有角落、邊緣、中間三種情況。角落會影響三格、抵銷一格,總高度 + 2 * K 邊緣會影響五格、抵銷自己的一格,總高度 + 4 * K中間的情況則是影響周遭八格、扣掉自己,總高度 + 7 * K

以上就是地圖三種可能的類型。最後,把總高度除以( M * N )即是題目所求。




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

創作回應

更多創作