hdu2102 双层bfs
来源:互联网 发布:淘宝助理不能同步宝贝 编辑:程序博客网 时间:2024/04/30 05:29
hdu2102
当传送的目的地是墙或者仍是传送机的时候就不要去了,把他当做墙.
#include<iostream>#include<queue>using namespace std;struct point{int x,y,step,type;}P[105];char mp[2][12][12];int M,N,T,dir[4][2]={{1,0},{-1,0},{0,1},{0,-1}};int bfs(point X){point t,tt;queue<point> Q;Q.push(X);while(!Q.empty()){t=Q.front();Q.pop();if(mp[t.type][t.x][t.y]=='*')continue;if(mp[t.type][t.x][t.y]=='P')return 1;mp[t.type][t.x][t.y]='*';for(int i=0;i<4;i++){tt.x=t.x+dir[i][0];tt.y=t.y+dir[i][1];tt.step=t.step+1;tt.type=t.type;if(tt.step>T||mp[tt.type][tt.x][tt.y]=='*')continue;if(mp[tt.type][tt.x][tt.y]=='#'){//如果是#mp[tt.type][tt.x][tt.y]=='*';//变为*tt.type=1-tt.type;//传送到另一层 if(mp[tt.type][tt.x][tt.y]=='#'||mp[tt.type][tt.x][tt.y]=='*'){//忽略 mp[tt.type][tt.x][tt.y]=mp[1-tt.type][tt.x][tt.y]='*';//变为* continue;//换个方向}}Q.push(tt);}}return 0;}int main(){int i,j,C;point S;scanf("%d",&C);while(C--){memset(mp,'*',sizeof(mp));cin>>M>>N>>T;for(i=1;i<=M;i++)for(j=1;j<=N;j++)cin>>mp[0][i][j];for(i=1;i<=M;i++)for(j=1;j<=N;j++)cin>>mp[1][i][j];S.x=1;S.y=1;S.step=0;S.type=0;if(bfs(S))printf("YES\n");elseprintf("NO\n");}return 0;}
- hdu2102 双层bfs
- HDU2102(双层BFS)
- hdu2102 A计划(双层BFS)
- hdu2102 bfs
- HDU2102(bfs)
- hdu2102之BFS
- HDU2102:A计划(BFS)
- hdu2102 A计划 (BFS)
- [bfs] HDU2102 A计划
- hdu2102 A计划--BFS
- HDU2102:A计划(BFS)
- hdu2102 A计划【BFS】
- HDU2102:A计划(BFS)
- HDU 2102 双层bfs
- HDU2102 A计划 (基础BFS)
- HDU2102 A计划(三维BFS)
- hdu2102 A计划(2层bfs)
- hdu2102-A计划-dfs剪枝|bfs
- C# windows frist 窗体程序
- C++第10周项目6参考——-打豆豆
- 十月“围城”--找工作纪实
- Android.mk简要说明
- asp.net 学习中,总结的知识点
- hdu2102 双层bfs
- 嵌入式图形界面
- linux 下 安装 nodejs
- 正则表达式总结转义字符 \ 转义紧随的元字符 \Q 转义所有紧随的元字符直到\E \E 与\Q搭配使用,转义包含的所有元字符 \\
- 产品经理(PM)常用原型图设计工具
- 天易13----jquery实现简单的可拖动的弹出层效果
- java web中定制应用的错误页面
- Oracle数据库基础介绍
- 仿iphone中短信/通话记录的时间显示