CSU 1726 你經歷過絕望嗎?兩次!

2021-08-21 12:25:37 字數 1448 閱讀 1915

time limit: 1 sec     memory limit: 128 mb
4月16日,日本熊本地區強震後,受災嚴重的阿蘇市一養豬場倒塌,幸運的是,豬圈裡很多頭豬依然堅強存活。當地15名消防員耗時一天解救圍困的「豬堅強」。不過與在廢墟中靠吃木炭飲雨水存活36天的中國汶川「豬堅強」相比,熊本的豬可沒那麼幸運,因為它們最終還是沒能逃過被送往屠宰場的命運。

我們假設「豬堅強」被困在乙個n*m的廢墟中,其中「@」表示「豬堅強」的位置,「.」表示可以直接通過的空地,「#」表示不能拆毀的障礙物,「*」表示可以拆毀的障礙物,那麼請問消防員至少要拆毀多少個障礙物,才能從廢墟中救出「豬堅強」送往屠宰場?(當「豬堅強」通過空地或被拆毀的障礙物移動到廢墟邊緣時,視作被救出廢墟)

多組資料,第一行有乙個整數t,表示有t組資料。(t<=100)

以下每組資料第一行有兩個整數n和m。(1<=n,m<=100)

接著n行,每行有乙個長度為m的字串。

乙個整數,為最少拆毀的障礙物數量,如果不能逃離廢墟,輸出-1。

3 3 3

3 4*.

3 3

.#.1

0 -1

中南大學第十屆大學生程式設計競賽

題解:直接bfs模板套用,再結合優先佇列,以較少拆毀的障礙物數量來排序,若能逃離,就輸出優先佇列的top元素的step,若不能逃離,就輸出-1。

ac**:

#include

#include

#include

using

namespace

std;

struct nodep,q,w;

bool

operator

<(struct node a,struct node b)

int t,n,m,px,py,ans;

char

map[110][110];

priority_queueq;

int vis[110][110];

int ppx[4]=;

int ppy[4]=;

void init()

memset(vis,0,sizeof(vis));

}int bfs()

for(int i=0;i<4;i++)

else

if(map[w.x][w.y]=='*'&&vis[w.x][w.y]==0)

else

if(map[w.x][w.y]=='.'&&vis[w.x][w.y]==0)}}

return -1;

}int main()}}

if(px==0||px==n-1||py==0||py==m-1)

ans=bfs();

printf("%d\n",ans);

}return

0;}

經驗 你是否經歷過這樣的面試

還要準備一些智力測試題 公務員型別的題,現在很多公司兩輪筆試,第一論是這些型別的考試,如趨勢 南摩 等。第二論是技術類筆試。總之,公務員型別題 技術類筆試題都從網上能夠找到,10底完成這些工作,招聘在11月初開始。再就是準備好面試你要表露的東西,如專案經驗了,技術能力了,知識點了,你的表達能力了,還...

你是否經歷過這些,求如何繼續才能提公升

你是否經歷過這些,求如何繼續才能提公升 程式設計師高階迷茫期,求前輩 大俠指導,望能在上乙個台階。下面介紹個人成長經歷。第一階段 大學 2006 11 2010 打基礎,看得見的成果是自學獲得了軟體設計師證書 第二階段 2010 03 2011 11,提公升廣度,並為深度做準備。要點,net類庫 n...

那些年我們經歷過的職場笑話

那些年我們經歷過的職場笑話 噴飯網以最專業的眼光,最專注的態度,廣泛地收集內容,並客觀地挑選出各類笑話的精品奉獻給大家。噴飯網免費為廣大網民提供最方便快捷的服務。不僅只有笑話,中還包含搞笑 笑話故事 搞笑漫畫 腦筋急轉彎等能使人娛樂的資訊。在工作的職場上,難免會出現紕漏,職場所要學的,定然比學校裡的...