WAJUEJI which home strong!

来源:互联网 发布:java 获取list的泛型 编辑:程序博客网 时间:2024/04/28 15:01


http://acm.nyist.net/JudgeOnline/problem.php?pid=1100

#include<iostream>
#include<queue>
#include<cstring>
using namespace std;
char a[100][100];
int book[110][110],sx,sy,ex,ey,n,m;
struct node
{
 int x,y;
 int yy;
 friend bool operator<(const node &a,const node &b)
 {
  return a.yy>b.yy;
 }
};
int bfs()
{
 int hx[]={1,-1,0,0},hy[]={0,0,1,-1},i;
 node p,q;
 priority_queue<node>Q;
 memset(book,0,sizeof(book));
 book[sx][sy]=1;
 p.x=sx;
 p.y=sy;
 p.yy=0;
 Q.push(p);
 while(!Q.empty())
 {
  p=Q.top();
  Q.pop();
  if(p.x==ex && p.y==ey)
   return p.yy;
  for(i=0;i<4;i++)
  {
   q.x=p.x+hx[i];
   q.y=p.y+hy[i];
   q.yy=p.yy;
   if(q.x>=1 && q.x<=n && q.y>=1 && q.y<=m && !book[q.x][q.y] && a[q.x][q.y]!='#')
   {
    if(a[q.x][q.y]!='l')
     q.yy=q.yy+a[q.x][q.y]-'A'+1;
    Q.push(q);
    book[q.x][q.y]=1;
   }
  }
 }
 return -1;
}
int main()

 int i,j,t;
 cin>>t;
 while(cin>>n>>m)
 {
  for(i=1;i<=n;i++)
   for(j=1;j<=m;j++)
   {
    cin>>a[i][j];
    if(a[i][j]=='s')
    {
     sx=i;
     sy=j;
    }
    if(a[i][j]=='l')
    {
     ex=i;
     ey=j;
    }
   }
  
  cout<<bfs()<<endl;
 }
 return 0;
}

0 0
原创粉丝点击