2012年1月15日 星期日

PKU3170-Knights of Ni

題目:http://poj.org/problem?id=3170
有個W*H(1000*1000)的棋盤,上面有一些空格、障礙物、果子
現在Bessie從一個位置出發,她可以走相鄰上下左右的空格
Bessie要摘到任一個果子、再送去給受傷不能走的KnightNi
問最少要走幾格
另外,在摘到果子以前Bessie不能和KnightNi站在同一格


程式碼:http://codepad.org/b3XcLNh8
基礎迷宮BFS
由於Bessie和KnightNi都是唯一的、但果子倒是不少
也就是說起點和終點固定,但是有很多不同的「中繼點」可供選擇
那麼不如對Bessie和KnightNi分別進行BFS,算出他們分別走到各格子的距離

於是答案就是對每一個是果子的格子,最小的Bessie距離+KnightNi距離

(和Silver cow party頗異曲同工,果然都是銀組出品的題目?)

沒有留言:

張貼留言