广搜模版
来源:互联网 发布:现货数据接口 编辑:程序博客网 时间:2024/04/30 20:46
#include <iostream>#include <algorithm>#include <stdio.h>#include <math.h>#include <vector>#include <string>#include <cstring>#include <sstream>using namespace std;#define input freopen("input.txt","r",stdin)#define output freopen("output.txt","r",stdout)#define For1(i,a,b) for (i=a;i<b;i++)#define For2(i,a,b) for (i=a;i<=b;i++)#define Dec(i,a,b) for (i=a;i>b;i--)#define Dec2(i,a,b) for (i=a;i>=b;i--)#define Sca(x) scanf("%d",&x)#define Fill(x,a) memset(x,a,sizeof(x))#define MAXN 0x7fffffffstruct node{int x,y,time;}que[100];int dir_x[]={0,1,-1,0,0};int dir_y[]={0,0,0,1,-1};int map[10][10];bool book[10][10];int main() {int n,m,t,i,j,k;int sx,sy,ex,ey;//sx==startx,sy==starty,ex==endx,ey==endychar in[10];while(cin>>n>>m>>t){Fill(map,0);Fill(book,0);if (!n&&!m&&!t) break;For2(i,1,n){cin>>in;For2(j,1,m)if (in[j-1]=='S')map[i][j]=0,sx=i,sy=j;else if (in[j-1]=='D')map[i][j]=0,ex=i,ey=j;else if (in[j-1]=='X')map[i][j]=1;}//如何处理字符 if (sx==ex&&sy==ey){cout<<"YES"<<endl;continue;}int head=1,tail=1;que[head].x=sx,que[head].y=sy,que[head].time=0;book[sx][sy]=1;while(head<=tail){int newx,newy;For2(k,1,4)//四种方向 {newx=que[head].x+dir_x[k];newy=que[head].y+dir_y[k];if (newx>0&&newx<=n&&newy>0&&newy<=m&&!book[newx][newy]&&!map[newx][newy])//在地图之内,未访问过,地图可走 {book[newx][newy]=1;tail++;que[tail].x=newx;que[tail].y=newy;que[tail].time=que[head].time+1;if (newx==ex&&newy==ey)if (que[tail].time<=t)cout<<"YES"<<endl,tail=100;//结束条件 elsecout<<"NO"<<endl,tail=100;//结束条件 }}head++;}}return 0;}
0 0
- 广搜模版
- 广搜模版BFS
- 双向广搜模版(360百科)
- 广搜
- 广搜
- 广搜
- 广搜
- 广搜
- 广搜
- POJ_3278_广搜
- 深搜 广搜
- hdu 1026 广搜
- 1242 rescue 广搜
- zoj 1091 广搜。
- POJ3083 广搜&模拟
- poj3278基本广搜
- POJ3414广搜&回溯
- nysit 20 广搜
- 《unix高级环境编程》进程控制——创建进程
- Android应用程序窗口(Activity)的运行上下文环境(Context)的创建过程分析
- LeetCode:Valid Palindrome
- CPU 是如何检测溢出的
- 回文平方数
- 广搜模版
- RabbitMQ学习之安装
- 用批处理写了一个开启adbwireless无线调试的dos命令
- 软件测试
- res与res-auto的区别
- ZOJ 2595 Ackerman's Function
- android4.0调用http接口,并解析JSON更新控件
- 英语学习 1
- Android通过php连接百度云数据库