關於農夫追牛的問題

2021-10-11 21:01:06 字數 1377 閱讀 6673

原題**於洛谷:p1518 [usaco2.4]兩隻塔姆沃斯牛 the tamworth two

追擊在 10×10 的平面網格內進行。乙個格仔可以是:乙個障礙物,兩頭牛(它們總在一起),或者 farmer john。兩頭牛和 farmer john 可以在同乙個格仔內(當他們相遇時),但是他們都不能進入有障礙的格仔。

輸入共十行,每行 10 個字元,表示地圖。

輸出乙個數字,表示 john 需要多少時間才能抓住牛們。如果 john 無法抓住牛,則輸出 0。

牛在地圖裡以固定的方式遊蕩。最開始時向北。每分鐘,它們可以向前移動或是轉彎。如果前方無障礙(地圖邊沿也是障礙),它們會按照原來的方向前進一步。否則它們會用這一分鐘順時針轉 90 度。 同時,它們不會離開地圖。

farmer john 深知牛的移動方法,他也這麼移動。

分析:

由遇到邊界和障礙『*』皆拐彎,不妨讓邊界初始化為』*』。

對於拐彎,可以設定四個方向分別對應變數m的0,1,2,3,這樣處理拐彎就處理m的值即可。

對於判斷農夫追不追得到牛,只要設定乙個極偏變數ox,再定義乙個布林雜湊px,如果這個偏僻的變數出現兩次就可以說明是死迴圈了,即農夫追不到牛。

#include

using

namespace std;

static

char map1[

1001][

10001];

static

bool px[

1000100]=

;static

int ox;

struct per

}farmer,cow;

void

move1

(per &a)

else

}else

if(a.m==1)

else

}else

if(a.m==2)

else

}else

if(a.m==3)

else}}

intmain()

for(

int i=

1;i<

11;i++

)else

if(map1[i]

[k]==

'c')}}

while(1

) px[ox]=1

;move1

(cow)

;move1

(farmer)

; sum++

;//過一秒。

if(farmer.x==cow.x&&farmer.y==cow.y)

}return0;

}

**如上,歡迎討論。

網路 牛客 關於網路的一些問題

1 哪個屬於b類的私有ip位址是?a 10.16.220.100 b 172.16.220.100 c 172.32.220.100 d 192.168.220.100解析 b a類位址的第一位為0 b類位址的前兩位為10 c類位址的前三位為110 d類位址的前四位為1110 e類位址的前五位為11...

問題 A 牛妹的蛋糕

題目描述 眾所周知,牛妹非常喜歡吃蛋糕。第一天牛妹吃掉蛋糕總數三分之一多乙個,第二天又將剩下的蛋糕吃掉三分之一多乙個,以後每天吃掉前一天剩下的三分之一多乙個,到第n天準備吃的時候只剩下乙個蛋糕。牛妹想知道第一天開始吃的時候蛋糕一共有多少呢?輸入輸入n,0 通過可以設立方程,設原先有x個,第二天為x ...

關於 zblog 的七牛官方外掛程式

錯誤 新建文章的等為什麼不自動儲存到雲了?是否更新了sdk而外掛程式沒更新呢?手動上傳的附件能到自動上傳的七牛空間,但是點選鏈結檢視 提示 錯誤 新建文章的等為什麼不自動儲存到雲了?是否更新了sdk而外掛程式沒更新呢?問題應該是 dows.qiniudn.com 這個網域名稱並不是配置在七牛空間中的...