zoj 1649(bfs+二次入队列)
来源:互联网 发布:免费手机阅读软件 编辑:程序博客网 时间:2024/05/16 15:30
题意:最短时间内被伙伴找到,
思路:因为有多个伙伴,所以可以公主找伙伴,bfs就好,守卫需要2s,遇到守卫二次入队列就行了.
#include <stdio.h>#include <string.h>#define MAX 300#define Max(a,b) a>b?a:b#define Min(a,b) a<b?a:bchar map[MAX][MAX];int n,m;int visit[MAX][MAX];int to[4][2]={1,0,-1,0,0,1,0,-1};int que[MAX*MAX][3];int check(int x,int y){if(x<0||y<0||x>=n||y>=m||visit[x][y]||map[x][y]=='#')return 0;return 1;}void bfs(int x,int y){int i,j,qqq;visit[x][y]=1;que[0][0]=x;que[0][1]=y;que[0][2]=0;qqq=1;i=0;while(i<qqq){if(map[que[i][0]][que[i][1]]=='r')break;if(map[que[i][0]][que[i][1]]=='x'&&visit[que[i][0]][que[i][1]]==2){que[qqq][0]=que[i][0];que[qqq][1]=que[i][1];que[qqq][2]=que[i][2]+1;qqq++;visit[que[i][0]][que[i][1]]=1;i++;continue;}for(j=0;j<4;j++){if(check(que[i][0]+to[j][0],que[i][1]+to[j][1])){que[qqq][0]=que[i][0]+to[j][0];que[qqq][1]=que[i][1]+to[j][1];que[qqq][2]=que[i][2]+1;if(map[que[i][0]+to[j][0]][que[i][1]+to[j][1]]!='x')visit[que[qqq][0]][que[qqq][1]]=1;else visit[que[qqq][0]][que[qqq][1]]=2; qqq++;}}i++;}if(i==qqq)printf("Poor ANGEL has to stay in the prison all his life.\n");else printf("%d\n",que[i][2]);return ;}int main(){int i,j,x,y; while(~scanf("%d%d",&n,&m)){ getchar(); memset(visit,0,sizeof(visit)); for(i=0;i<n;i++){ for(j=0;j<m;j++){ scanf("%c",&map[i][j]); if(map[i][j]=='a'){ x=i; y=j; } } getchar(); } bfs(x,y); } return 0;}
0 0
- zoj 1649(bfs+二次入队列)
- ZOJ 1649 Rescue (BFS)
- zoj 1649 rescue (bfs)
- zoj 1649 BFS
- ZOJ 1649 BFS
- ZOJ 1649 Resuce (BFS)
- zoj 1649 bfs
- zoj 1649 BFS
- ZOJ 1649 : Rescue - BFS
- zoj 1649 Rescue bfs
- ZOJ 1649 BFS
- zoj 1649 bfs
- ZOJ 1649 Rescue BFS水题
- ZOJ 1649 Rescue(BFS)
- ZOJ 1649 Rescue (BFS)
- ZOJ 1649:Rescue(BFS)
- zoj 1649 Rescue (bfs+队列)
- 简单BFS ZOJ 1649Rescue
- PHP中count函数
- Android网络访问之http、https、 cookie的使用
- UVALive 6669 Hidden Tree(状压DP)
- 后台到前端--无缝隙
- Socket 与 Http区别 优缺点及应用场景
- zoj 1649(bfs+二次入队列)
- Content provide & content resolver comments
- PL/SQL Developer记住用户名密码
- 通过unity画弧线
- vim配置
- Jfire-Core 框架API文档
- JVM调优总结(八)-典型配置举例2
- JDBC:Apache DBUtils的使用
- UITextField监听文字输入事件