1. 程式人生 > >C語言BFS(1)___乳草的入侵

C語言BFS(1)___乳草的入侵

Farmer John一直努力讓他的草地充滿鮮美多汁的而又健康的牧草。可惜天不從人願,他在植物大戰人類中敗下陣來。邪惡的乳草已經在他的農場的西北部份佔領了一片立足之地。

草地像往常一樣,被分割成一個高度為Y(1 <= y <= 100), 寬度為X(1 <= x <= 100)的直角網格。(1,1)是左下角的格(也就是說座標排布跟一般的X,Y座標相同)。乳草一開始佔領了格(Mx,My)。每個星期,乳草傳播到已被乳草佔領的格子四面八方的每一個沒有很多石頭的格(包括垂直與水平相鄰的和對角線上相鄰的格)。1周之後,這些新佔領的格又可以把乳草傳播到更多的格裡面了。

Bessie想要在草地被乳草完全佔領之前儘可能的享用所有的牧草。她很好奇到底乳草要多久才能佔領整個草地。如果乳草在0時刻處於格(Mx,My),那麼還在那個時刻它們可以完全佔領入侵整片草地呢(對給定的資料總是會發生)?

草地由一個圖片表示。"."表示草,而"*"表示大石。比如這個X=4, Y=3的例子。

     ....
     ..*.
     .**.

如果乳草一開始在左下角(第1排,第1列),那麼草地的地圖將會以如下態勢發展:

      ....  ....  MMM.  MMMM  MMMM  
      ..*.  MM*.  MM*.  MM*M  MM*M  
      M**.  M**.  M**.  M**.  M**M  
星期數  0     1     2     3     4

乳草會在4星期後佔領整片土地。