hdu 1072Nightmare(bfs)
来源:互联网 发布:大数据平台开发工程师 编辑:程序博客网 时间:2024/05/22 05:22
炸弹时间为6
0是不可走
1可走
2是起始位置
3是重点
4重置炸弹时间为6
#include <stdio.h>#include <string.h>#include <queue>using namespace std;int n,m,sx,sy;int dir[4][2]={{0,1},{0,-1},{1,0},{-1,0}};int maze[10][10];struct node{ int x,y,step,time;}pre,rear;int isok(int x,int y){ if(x>0&&x<=n&&y>0&&y<=m&&maze[x][y]!=0) return 1; return 0;}void bfs(){ queue<node>Q; int i; pre.x=sx,pre.y=sy; pre.step=0,pre.time=6; Q.push(pre); maze[sx][sy]=0; while(!Q.empty()) { pre=Q.front(); Q.pop(); for(i=0; i<4; i++) { rear=pre; rear.x+=dir[i][0]; rear.y+=dir[i][1]; if(isok(rear.x,rear.y)) { if(maze[rear.x][rear.y]==1) { rear.time--; if(rear.time>0) { rear.step++; Q.push(rear); } } if(maze[rear.x][rear.y]==4) { rear.time--; if(rear.time>0) { rear.step++; rear.time=6; Q.push(rear); } maze[rear.x][rear.y]=0; } if(maze[rear.x][rear.y]==3) { rear.time--; if(rear.time>0) { rear.step++; printf("%d\n",rear.step); return; } } } } } printf("-1\n"); return;}int main(){ int t,i,j; scanf("%d",&t); while(t--) { scanf("%d%d",&n,&m); for(i=1;i<=n;i++) for(j=1;j<=m;j++) { scanf("%d",&maze[i][j]); if(maze[i][j]==2) sx=i,sy=j; } bfs(); } return 0;}
0 0
- hdu 1072 Nightmare (bfs)
- hdu 1072 Nightmare (BFS)
- hdu 1072 Nightmare bfs()
- hdu 1072Nightmare(bfs)
- HDU-#1072 Nightmare(BFS)
- HDU 1072:Nightmare(BFS)
- hdu 1072 Nightmare(bfs)
- hdu 1072 Nightmare(bfs)
- hdu-1072-Nightmare(bfs)
- HDU 1072 Nightmare(BFS)
- hdu 1072 Nightmare (BFS)
- HDU-1072 Nightmare(bfs)
- BFS hdu 1072 Nightmare
- HDU 1072 Nightmare BFS
- hdu 1072 Nightmare BFS
- hdu 1072 Nightmare bfs
- Hdu 1072 Nightmare[Bfs]
- hdu 1072 Nightmare--bfs
- tomcat源码分析前的准备工作
- 位运算
- enable_shared_from_this
- [Java聊天室服务器]实战之六 去除死链接
- 用百度天气接口的实现安卓天气预报(json数据)
- hdu 1072Nightmare(bfs)
- Cycript segmentation fault:11
- c/c++ inline真正的用法
- 前端工程师必备技能汇总
- 过滤器入门
- C++11 语法记录
- 利用a标签自动解析URL
- Running Nutch in Eclipse
- jdbc