uva 10047
来源:互联网 发布:租淘宝店铺多少钱 编辑:程序博客网 时间:2024/05/16 08:01
题意:给你起点和终点,要求在颜色也和起点相同的情况下,最短的步数。。。最短路,果断就是BFS
#include <iostream>#include <cstdio>#include <cstring>using namespace std;const int MAXN = 13000;struct node { int x; int y; int cl; int di; int t ;}q[MAXN];char map[50][50];int vis[50][50][5][5],flag,n,m,t;int dx[4] = {-1,0,1,0}; //注意向北的方向要对应好int dy[4] = {0,1,0,-1};void bfs(int x,int y){ int front = 0,rear=1; node s,u; s.x=x,s.y=y,s.cl=0,s.di=0,s.t=0; vis[x][y][0][0] = 1 ; q[front] = s ; while ( front < rear ) { s = q[front++] ; if (map[s.x][s.y] == 'T' && s.cl == 0) { flag = 1 ; t = s.t ; return ; } int nx = s.x + dx[s.di] ; int ny = s.y + dy[s.di]; if (nx>=0&&nx<m&&ny>=0&&ny<n&&!vis[nx][ny][(s.cl+1)%5][s.di]&&map[nx][ny]!='#') //向前 { u.x = nx,u.y=ny,u.cl=(s.cl+1)%5,u.di=s.di,u.t=s.t+1; q[rear++] = u ; vis[nx][ny][u.cl][u.di] = 1; } if (!vis[s.x][s.y][s.cl][(s.di+3)%4]) //向右 { u.x=s.x;u.y=s.y;u.cl=s.cl;u.di=(s.di+3)%4;u.t=s.t+1; q[rear++]=u; vis[u.x][u.y][u.cl][u.di]=1; } if (!vis[s.x][s.y][s.cl][(s.di+1)%4]) //向左 { u.x=s.x;u.y=s.y;u.cl=s.cl;u.di=(s.di+1)%4;u.t=s.t+1; q[rear++]=u; vis[u.x][u.y][u.cl][u.di]=1; } } return ;}int main(){ int sx,sy; int cas = 0; while (scanf("%d%d",&m,&n) != EOF) { getchar(); if (m==0 && n==0) break; for (int i = 0 ; i < m ; i++) { scanf("%s",map[i]); for (int j = 0 ; j < n ; j++) { if (map[i][j] == 'S') { sx = i ; sy = j ; } } } memset(vis,0,sizeof(vis)); flag = 0,t = 0; bfs(sx,sy); if (cas) printf("\n"); printf("Case #%d\n",++cas); if (!flag) printf("destination not reachable\n"); else printf("minimum time = %d sec\n",t); } return 0;}
- uva 10047
- uva 10047
- uva 10047
- UVA 10047
- UVa 10047
- UVA 10047
- UVA 10047 The Monocycle
- uva 10047 - The Monocycle
- uva 10047 - The Monocycle
- UVA 10047 独轮车
- UVA 10047 - The Monocycle
- uva 10047 - The Monocycle
- uva 10047 - The Monocycle
- UVa 10047 - The Monocycle
- uva 10047(BFS)
- uva 10047 搜索
- UVA 10047 独轮车(BFS)
- uva 10047 The Monocycle
- PAT_1050: String Subtraction
- 卡片游戏
- adb 配置环境变量 与命令解释
- poj 1845 Sumdiv (快速求幂+同余或 乘法逆元)
- 08-php中的抽象类
- uva 10047
- 思维导图
- imageview使用android:scaleType="fitXY"时的问题
- HDU2546 饭卡
- OSI七层网络模型与TCP/IP四层网络模型
- 网站如何保持一直在线?CDN加速好用吗
- 多核并行编程中的内存栅栏
- C语言父子进程--子进程的创建与带参返回值捕捉
- Linux设备驱动模型(1)