HDU 2612

#include<stdio.h>
#include<string.h>
#include<iostream>
#include<queue>
using namespace std; #define INF 0x3f3f3f3f
#define N 210 int n, m;
char maps[N][N];
int vis[N][N], dis[N][N][2], f;
int dir[4][2]={{1,0}, {0,1}, {-1,0}, {0,-1}}; struct node
{
int x, y, step;
}; queue <node> q; void BFS(int x, int y)
{
node head, next;
head.x=x;
head.y=y;
head.step=0;
vis[x][y]=1;
q.push(head); while(!q.empty())
{
head=q.front();
q.pop();
for(int i=0; i<4; i++)
{
next.x=head.x+dir[i][0];
next.y=head.y+dir[i][1];
if(next.x>=0&&next.x<n&&next.y>=0&&next.y<m&&!vis[next.x][next.y]
&&(maps[next.x][next.y]=='.'||maps[next.x][next.y]=='@'))
{
vis[next.x][next.y]=1;
next.step=head.step+1;
if(maps[next.x][next.y]=='@')
dis[next.x][next.y][f]=min(dis[next.x][next.y][f], next.step);
q.push(next);
}
}
}
} int main()
{
while(~scanf("%d%d", &n, &m))
{
memset(dis, INF, sizeof(dis));
for(int i=0; i<n; i++)
scanf("%s", maps[i]); for(int i=0; i<n; i++)
for(int j=0; j<m; j++)
{
if(maps[i][j]=='Y')
{
f=0;
memset(vis, 0, sizeof(vis));
BFS(i, j);
}
else if(maps[i][j]=='M')
{
f=1;
memset(vis, 0, sizeof(vis));
BFS(i, j);
}
} int ans=INF; for(int i=0; i<n; i++)
for(int j=0; j<m; j++)
{
if(maps[i][j]=='@'&&ans>dis[i][j][0]+dis[i][j][1])
ans=dis[i][j][0]+dis[i][j][1];
}
printf("%d\n", ans*11);
}
}

BFS 广搜的更多相关文章

  1. hdu 1242:Rescue(BFS广搜 + 优先队列)

    Rescue Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total Submis ...

  2. hdu 1195:Open the Lock(暴力BFS广搜)

    Open the Lock Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Tot ...

  3. BFS广搜题目(转载)

    BFS广搜题目有时间一个个做下来 2009-12-29 15:09 1574人阅读 评论(1) 收藏 举报 图形graphc优化存储游戏 有时间要去做做这些题目,所以从他人空间copy过来了,谢谢那位 ...

  4. hdu 1026:Ignatius and the Princess I(优先队列 + bfs广搜。ps:广搜AC,深搜超时,求助攻!)

    Ignatius and the Princess I Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (J ...

  5. hdu 1180:诡异的楼梯(BFS广搜)

    诡异的楼梯 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others)Total Subm ...

  6. hdu 2717:Catch That Cow(bfs广搜,经典题,一维数组搜索)

    Catch That Cow Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  7. hdu 2612:Find a way(经典BFS广搜题)

    Find a way Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  8. Catch That Cow(BFS广搜)

    Description Farmer John has been informed of the location of a fugitive cow and wants to catch her i ...

  9. POJ3984 BFS广搜--入门题

    迷宫问题 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 20816   Accepted: 12193 Descriptio ...

  10. 解救小哈——bfs广搜

    问题描述: 小哈去玩迷宫,结果迷路了,小哼去救小哈.迷宫由n行m列的单元格组成(n和m都小于等于50),每个单元格要么是空地,要么是障碍物. 问题:帮小哼找到一条从迷宫的起点通往小哈所在位置的最短路径 ...

随机推荐

  1. 吉特日化MES & 医药行业相关专业术语汇总

  2. 【scikit-learn基础】--『预处理』之 离散化

    数据的预处理是数据分析,或者机器学习训练前的重要步骤.通过数据预处理,可以 提高数据质量,处理数据的缺失值.异常值和重复值等问题,增加数据的准确性和可靠性 整合不同数据,数据的来源和结构可能多种多样, ...

  3. Celery 定义和调用异步任务Task

    https://docs.celeryq.dev/en/stable/userguide/tasks.html 使用app.task装饰器定义 需要通过导入celery app,然后使用@app.ta ...

  4. 数字孪生和GIS结合将会为智慧园区带来怎样的改变?

    数字孪生和地理信息系统(GIS)是当今智慧园区发展中的两个重要技术,它们的结合将为智慧园区带来根本性的改变和巨大的发展机遇.这种结合将深刻影响园区的规划.建设.运营和管理,为人们创造更智能.高效.可持 ...

  5. JDK1.8下载 用阿里云盘

    JDK1.8下载 用阿里云盘 jdk-8u202-windows-x64.exe https://www.aliyundrive.com/s/jJhWUk17jMt 点击链接保存,或者复制本段内容,打 ...

  6. Swagger2的接口配置

    Swagger2的接口配置 /** * Swagger2的接口配置 * * @author ruoyi */ @Configuration public class SwaggerConfig { / ...

  7. 从零玩转Nginx

    01[熟悉]实际开发中的问题? 现在我们一个项目跑在一个tomcat里面 当一个tomcat无法支持高的并发量时.可以使用多个tomcat 那么这多个tomcat如何云分配请求 |-nginx 02[ ...

  8. CentOS7部署后优化配置

    1.安装必要的组件.升级 yum -y install wget vim cd /etc/yum.repos.d/ rm -rf /etc/yum.repos.d/*.repo wget http:/ ...

  9. 放弃JavaFx开发学习

    放弃JavaFx开发学习 一开始学学习JavaFx是想用java写个小游戏,后来学者JavaFx越来越深,发现坑也越来越多,不禁感叹:JavaFx果然是要抛弃的UI玩儿,UI开发还是用react na ...

  10. JavaFx 打开一个新窗口和窗口交互(四)

    JavaFx 打开一个新窗口和窗口交互(四) JavaFX 从入门入门到入土系列 前面我演示的demo都是单个窗口,那么如何实现多个窗口呢?使用Stage secondStage = new Stag ...