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