小學期 有吃的!

2021-08-09 09:13:48 字數 1312 閱讀 8300

婦添小有乙個很厲害的技能:發現吃的!如果有好吃的東西,不論多遠,只要一聞就能知道在**。這天他剛剛在程設rejudge完,忽然鼻子一抽——有吃的!他決定馬上趕去吃這麼好吃的東西。

語文男為了考驗婦添小的品味,在路中間放了很多饅頭,看他會不會餓的先吃饅頭。婦添小當然不會讓這種雕蟲小計得逞!為了保持自己的品味,他決定繞開所有的饅頭。eureka受到婦添小邀請,運用絕世法力構造了很多傳送點,任意兩個傳送點之間都能瞬移(當然傳不傳,傳到**都可以隨心所欲)。婦添小每次移動只能走上下左右四個方向(瞬移除外,並且瞬移不耗費時間)。現在,婦添小最短多長時間能吃到好吃的東西呢?

(當然,為了出題我們隱瞞了一些事實:不僅好吃的不見了,路上的饅頭竟然也不翼而飛了,這真真是個悲傷的故事t.t)

輸入:

第一行包含兩個數字n,m(1<=n,m<=2000)

接下來包含n行,每行m個字元,表示現在的地圖。'.'表示空地,'m『表示饅頭,『e』表示傳送點,'n'表示婦添小所在的位置,'c'表示吃的。'n'和『c'在地圖中出現且僅出現一次。

輸出:

乙個數字,表示婦添小最快能多長時間吃到好吃的。如果永遠吃不到,只能說明傳送點不夠多,輸出「bad eureka」。

提示:如果時間顯示是0.004等很短的時間,但是最後評測為tle,這時候實際上是因為開的陣列過大,超出了記憶體限制。

測試用例:

輸入:

6 6

...e..

emm.m.

.m..m.

.mc.m.

.mmm..

n..e..

輸出:

7

題解:相對於普通的廣度優先搜尋,這道題披上了乙個傳送點的外衣,也就是bfs下如何處理這種有傳送點的問題。這個時候有種比較好的解法就是,先求出n->c的距離,不考慮e,記這次的步數為step,然後分別求出,n->e,c->e的最短距離step1和step2,那麼step1+step2就是n->c經過e的最少步數,然後比較step,輸出較小的乙個。

**:

#include#includeint dir[4][2]=,,,};

char map[2001][2001];

int vis[2001][2001];

int n,m;

struct queueq[4000001];

int bfs(int x1,int y1,char target)

} front++;

} return 0x3f3f3f3f;

}int main()

小學期 掃雷

你玩兒過掃雷遊戲吧?有個作業系統中帶了這個小遊戲,那個系統叫什麼來著?在遊戲中要想過關,就必須要在乙個 nxm 的區域上找出所有的地雷。遊戲過程中,計算機會在地圖上顯示一些數字從而幫助你確定 有地雷。例如,在下面這個有兩顆地雷的 4x4 的地圖 表示地雷 根據上面的地圖,可以計算出應該提供給遊戲者的...

小學期活動

現在我是大二,這學期的小學期是進行軟體實習。想想去年這個時候是在學校的烈日下參加軍訓。不過這學期小學期的任務還是很重的,不是一般的重。感覺比平時上課時候要緊張多了。說說現在完成的進度。小學期的前半部分的上課階段已經在今天結束了。職業溝通課程已經結束了,其間完成一系列活動,主要有模擬公司的招聘的活動,...

夏季小學期

夏季小學期 825172?fr aladdin 夏季小學期一般指在春季學期結束後,額外增加的若干周較短的上課時間,與春 秋季學期組成 兩長加一短 的形式,並以此為週期安排全學年教學任務。這也是諸多世界名校普遍採用的學期制度。目前國內開設夏季小學期的主要有北京大學 清華大學 華東師範大學 中國政法大學...