2012年3月23日 星期五

tioj 1402 淹水問題

這題其實不難啦(比起樹分治)XD
可是我還是想了很久,一開始一直在想用DFS來解這題
亂想一通,本來的想法是,用heap存目前最低的地方
並從其開始,往外找最低的牆壁,然後把有幾塊乘上高度差
一直這樣做下去,結果發現這樣是O( (nm)^2 ) 徹底TLE(nm=10^5)
被捏了一下(從邊界做),才了解 _ _
慨念就是從邊界開始,(用heap存邊界)
由最低的邊界開始(因為水會從最低的流出去)
不斷的把邊界向『內』擴展(?!)
碰到比較低的就把高度差加進ANS,並將其填滿
一直做到邊界內沒有任何其他的地為止

http://codepad.org/pYMZpj1l

沒有留言:

張貼留言