此刻再看优先队列,不像刚接触时的那般迷茫!这也许就是集训的成果吧!

加油!!!优先队列必须要搞定的!

这道题意很简单!自己定义优先级别!

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

===================================================================================

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

#include<stdio.h>

#include<string.h>
#include<queue>

using namespace std;

int n,m,dir[4][2]={1,0,0,1,-1,0,0,-1};

char s[1010][1010];

struct node

{


int x,y,step;


friend bool operator<(node a,node b)


{


return a.step>b.step;


}


/*


bool operator<(const node &b) const


{


return step>b.step;


}*/

};

bool judge(int x,int y)

{


if(x>=0&&x<n&&y>=0&&y<m&&s[x][y]!='#')


return true;


return false;

}

int bfs(int x0,int y0)

{


int k,x,y;


priority_queue<node>q;


node cur,next;


cur.x=x0;cur.y=y0;cur.step=0;


q.push(cur);


s[x0][y0]='#';


while(!q.empty())


{


cur=q.top();


q.pop();


for(k=0;k<4;k++)


{


x=next.x=cur.x+dir[k][0];


y=next.y=cur.y+dir[k][1];


next.step=cur.step+1;


if(judge(x,y))


{


if(s[x][y]=='r')


return next.step;


else if(s[x][y]=='.')


q.push(next);


else


{


next.step++;


q.push(next);


}


s[x][y]='#';


}


}


}


return -1;

}

int main()

{


int i,j,x,y,ans;


while(scanf("%d%d",&n,&m)!=EOF)


{


for(i=0;i<n;i++)


scanf("%s",s[i]);


for(i=0;i<n;i++)


{


for(j=0;j<m;j++)


if(s[i][j]=='a')


{


x=i;y=j;


}


if(j<m)


break;


}


ans=bfs(x,y);


if(ans==-1)


printf("Poor ANGEL has to stay in the prison all his life.\n");


else


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


}


return 0;

}

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1242

hdu 1242 Rescue(bfs)的更多相关文章

  1. hdu 1242:Rescue(BFS广搜 + 优先队列)

    Rescue Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total Submis ...

  2. HDU 1242 Rescue (BFS(广度优先搜索))

    Rescue Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submis ...

  3. HDU 1242 -Rescue (双向BFS)&amp;&amp;( BFS+优先队列)

    题目链接:Rescue 进度落下的太多了,哎╮(╯▽╰)╭,渣渣我总是埋怨进度比别人慢...为什么不试着改变一下捏.... 開始以为是水题,想敲一下练手的,后来发现并非一个简单的搜索题,BFS做肯定出 ...

  4. hdu 1242 Rescue(BFS,优先队列,基础)

    题目 /******************以下思路来自百度菜鸟的程序人生*********************/ bfs即可,可能有多个’r’,而’a’只有一个,从’a’开始搜,找到的第一个’r ...

  5. HDU 1242 Rescue (BFS+优先队列)

    题意:X代表卫兵,a代表终点,r代表起始点,.代表路,#代表墙,走过.要花费一秒,走过x要花费2秒,求从起点到终点的最少时间. 析:一看到样例就知道是BFS了吧,很明显是最短路径问题,不过又加了一个条 ...

  6. hdu 1242 Rescue(BFS入门)

    第一次用容器做的BFS题目,题目有个地方比较坑,就是遍历时的方向,比如上下左右能AC,右上左下就WA #include <stdio.h> #include <string.h> ...

  7. HDU 1242 Rescue(优先队列)

    题目来源: http://acm.hdu.edu.cn/showproblem.php?pid=1242 题目描述: Problem Description   Angel was caught by ...

  8. HDU 1242——Rescue(优先队列)

    题意: 一个天使a被关在迷宫里,她的很多小伙伴r打算去救她.求小伙伴就到她须要的最小时间.在迷宫里有守卫.打败守卫须要一个单位时间.假设碰到守卫必须要杀死他 思路: 天使仅仅有一个,她的小伙伴有非常多 ...

  9. HDU 1242 Rescue (广搜)

    题目链接 Problem Description Angel was caught by the MOLIGPY! He was put in prison by Moligpy. The priso ...

随机推荐

  1. HDU3415:Max Sum of Max-K-sub-sequence(单调队列)

    Problem Description Given a circle sequence A[1],A[2],A[3]......A[n]. Circle sequence means the left ...

  2. Eclipse4.3正式版已发布

    Eclipse4.3正式版已发布,传送门http://www.eclipse.org/downloads/

  3. 模拟JQUERY的延迟方法绑定

    模拟JQUERY的延迟方法绑定, 对于延迟方法绑定,各种语言都有不同的描述 什么回调啊,函数指针啊,委托啊,事件啊等,其实也就是那么大回事,不过用好这些特性,对于扩展和架构是非常有好处的, 好处自然就 ...

  4. bzoj 1057: [ZJOI2007]棋盘制作 单调栈

    题目链接 1057: [ZJOI2007]棋盘制作 Time Limit: 20 Sec  Memory Limit: 162 MBSubmit: 2027  Solved: 1019[Submit] ...

  5. IOS 表视图(UITableVIew)的使用方法(4)自定义表视图单元

    UITableViewCell的自定义往往需要自建一个UITableViewCell的子类后进行作业.开发者可以选择通过xib或者直接在UITableViewCell的布局中进行UITableView ...

  6. (IOS)关于Xcode的架构(Architectures)设置

    首先来了解一下Architectures中几个参数的含义 ARMv6:ARM11内核用于iPhone2G和iPhone3G中的架构 ARMv7:modern ARM内核用于iPhone3GS和iPho ...

  7. 帝国cms修改[!--show.listpage--]分页页码所生成的html标签

    在使用帝国cms系统时,我们用[!--show.page--]和[!--show.listpage--]来生成页码 其中[!--show.listpage--]所生成的html页码代码为: <a ...

  8. 几款Http小服务器

    六款小巧的HTTP Server[C语言] http://blog.linuxphp.org/?action=show&id=60 转载:

  9. Struts2 中action之间的跳转(分享)

    例如从你的login.action到register.action  有两种实现方式 1. 设置type="redirect" <package  name="st ...

  10. PLSQL 导入表到Oracle------》从一个表空间导入到其它表空间

        在用PLSQL导入.dmp文件到Oracle时出现的问题如下: Import started on 2015/11/18 10:42:44E:\oracle\product\10.2.0\db ...