網教17 有吃的!

2021-07-22 17:45:47 字數 1884 閱讀 1708

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

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

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

輸入:

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

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

輸出:

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

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

測試輸入

期待的輸出

時間限制

記憶體限制

額外程序

測試用例 1

以文字方式顯示

6 6↵

...e..↵

emm.m.↵

.m..m.↵

.mc.m.↵

.mmm..↵

n..e..↵

以文字方式顯示7↵

1秒64m

0 題解:

看著就是乙個簡單的搜尋題目(實際也不太難),我一開始想的辦法是求所有e到c的距離找出最小值記為a,找n到最近的e的距離記為b,n不走e直接到c的距離為c,最後看a+b和c哪個大。但是一開始用dfs交了幾發,出了3個re,不知道是什麼鬼。然後後來用bfs,有乙個超時。後來發現是找所有e到c的距離導致時間複雜度太高,直接找c到最近的e的距離記為a即可。然後就過了。

可是我還是不知道為什麼不能用dfs。

**:

#include#includechar map1[2005][2005];  

int dx = ;

int dy = ;

int n, m;

int vis[2005][2005] = ;

struct node

q[4000005];

int bfs(int x1, int y1)

} front++;

} return 0x3f3f3f3f;

} int bfs2(int x1, int y1)

} front++;

} return 0x3f3f3f3f;

} int main()

if (map1[i][j] == 'c')

} getchar();

} int min1, min2, min3;

min1 = bfs2(ex, ey);

min2 = bfs2(sx, sy);

min3 = bfs(sx, sy);

int ans;

if ((min1 == 0x3f3f3f3f || min2 == 0x3f3f3f3f) && min3 == 0x3f3f3f3f)

printf("bad eureka\n");

else

}

小學期 有吃的!

婦添小有乙個很厲害的技能 發現吃的!如果有好吃的東西,不論多遠,只要一聞就能知道在 這天他剛剛在程設rejudge完,忽然鼻子一抽 有吃的!他決定馬上趕去吃這麼好吃的東西。語文男為了考驗婦添小的品味,在路中間放了很多饅頭,看他會不會餓的先吃饅頭。婦添小當然不會讓這種雕蟲小計得逞!為了保持自己的品味,...

教打字的軟體有什麼推薦

m is beacon teaches typing for mac是一款好用的打字教學國際終極版。m is beacon teaches typing破解提供動態的個人指導,根據您當前的技能水平為您安排課程,並隨著您打字的改進調整您的路徑。新功能!更多 rss 源 在您練習打字時,您可以隨時掌握最...

有網和沒網的生活

文章寫於12月1日。有一周,因為一些原因,宿舍斷網了。倒也沒什麼感覺,要獲取什麼資訊,手機也是很ok的。又過了一周,網路復原了,我一衝動,又給電腦裝上了warcraft和11平台,想偶爾玩一盤,結果沒把持住,就一發不可收拾了。玩dota,玩蜀門,當然沒大學時候瘋狂了,也佔據了我下班後生活的一部分,最...