HDU 5025 Saving Tang Monk(bfs)(二)

2015-07-20 17:38:12 · 作者: · 浏览: 14
t y) { if(x>=0&&x =0&&y q; void bfs() { int i,j; struct stud cur,next; while(!q.empty()) q.pop(); cur.x=sx; cur.y=sy; cur.time=0; cur.s=0; cur.k=1; q.push(cur); while(!q.empty()) { cur=q.top(); q.pop(); if(cur.k==m+1&&a[cur.x][cur.y]=='T') { ans=cur.time; return ; } for(i=0;i<4;i++) { int xx=cur.x+step[i][0]; int yy=cur.y+step[i][1]; if(!judge(xx,yy)||a[xx][yy]=='#') continue; next.x=xx; next.y=yy; next.s=cur.s; next.k=cur.k; next.time=cur.time+1; if(a[xx][yy]=='S') { int tt=1<