HDU-2612,Find a way(BFS)

简介: HDU-2612,Find a way(BFS)

Problem Description:


Pass a year learning in Hangzhou, yifenfei arrival hometown Ningbo at finally. Leave Ningbo one year, yifenfei have many people to meet. Especially a good friend Merceki.

Yifenfei’s home is at the countryside, but Merceki’s home is in the center of city. So yifenfei made arrangements with Merceki to meet at a KFC. There are many KFC in Ningbo, they want to choose one that let the total time to it be most smallest.

Now give you a Ningbo map, Both yifenfei and Merceki can move up, down ,left, right to the adjacent road by cost 11 minutes.


Input:


The input contains multiple test cases.

Each test case include, first two integers n, m. (2<=n,m<=200).

Next n lines, each line included m character.

‘Y’ express yifenfei initial position.

‘M’    express Merceki initial position.

‘#’ forbid road;

‘.’ Road.

‘@’ KCF


Output:


For each test case output the minimum total time that both yifenfei and Merceki to arrival one of KFC.You may sure there is always have a KFC that can let them meet.


Sample Input:


4 4


Y.#@


....


.#..


@..M


4 4


Y.#@


....


.#..


@#.M


5 5


Y..@.


.#...


.#...


@..M.


#...#


Sample Output:


66


88


66


程序代码:  


#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
#include<algorithm>
using namespace std;
#define maxn 201
#define INF 0x3f3f3f
int dir[4][2]={{0,1},{0,-1},{1,0},{-1,0}};
int dist1[maxn][maxn],dist2[maxn][maxn];
int vis[maxn][maxn],m,n;
char map[maxn][maxn];
struct node
{
  int x,y,step;
};
void bfs(node start,int dist[maxn][maxn])
{
  memset(vis,0,sizeof(vis));
  queue<node> Q;
  node p,q;
  Q.push(start);
  vis[start.x][start.y]=1;
  dist[start.x][start.y]=0;
  while(!Q.empty())
  {
    p=Q.front();
    Q.pop();
    for(int i=0;i<4;i++)
    {
      q.x=p.x+dir[i][0];
      q.y=p.y+dir[i][1];
      if(!vis[q.x][q.y]&&q.x>=0&&q.x<n&&q.y>=0&&q.y<m&&map[q.x][q.y]!='#')
      {
        vis[q.x][q.y]=1;
        dist[q.x][q.y]=dist[p.x][p.y]+1;
        Q.push(q);
      }
    }
  }
}
int main()
{
  while(~scanf("%d %d",&n,&m))
  {
    node s1,s2;
    getchar();
    for(int i=0;i<n;i++,getchar())
    {
      for(int j=0;j<m;j++)
      {
        scanf("%c",&map[i][j]);
        if(map[i][j]=='Y')
        {
          s1.x=i;
          s1.y=j;
          s1.step=0;
        }
        if(map[i][j]=='M')
        {
          s2.x=i;
          s2.y=j;
          s2.step=0;
        }
      }
    }
    memset(dist1,0,sizeof(dist1));
    memset(dist2,0,sizeof(dist2));
    bfs(s1,dist1);
    bfs(s2,dist2);
    int minn=INF;
    for(int i=0;i<n;i++)
    {
      for(int j=0;j<m;j++)
      {
        if(map[i][j]=='@'&&dist1[i][j]!=0&&dist2[i][j]!=0)
          minn=min(minn,dist1[i][j]+dist2[i][j]);
      }
    }
    printf("%d\n",minn*11);
  }
  return 0;
}


相关文章
JRebel-JVMTI [FATAL] Couldn‘t write to C:\Users\【完美解决方案】
JRebel-JVMTI [FATAL] Couldn‘t write to C:\Users\【完美解决方案】
JRebel-JVMTI [FATAL] Couldn‘t write to C:\Users\【完美解决方案】
|
安全 区块链 数据库
|
11月前
|
JSON API 数据安全/隐私保护
95%开发者不知道的调试黑科技:Apipost让WebSocket开发效率翻倍的秘密
在现代Web开发中,WebSocket提供全双工通信,适用于实时交互场景,如IM系统、聊天和客服系统。尽管调试工具众多,但文档设计一直是其短板。本文介绍如何使用Apipost实现WebSocket的高效调试与文档设计。Apipost不仅简化了连接建立、消息发送等调试操作,还通过分组功能优化了消息管理。其文档设计功能支持在同一endpoint下区分业务逻辑,生成清晰易维护的文档,并可一键分享。此外,文章还提供了WebSocket实战技巧,涵盖连接保持、消息格式选择、错误处理及安全性保障等内容,助力开发者提升开发效率。
|
前端开发 JavaScript API
前端 JS 经典:阿里云文件上传思路
前端 JS 经典:阿里云文件上传思路
371 0
|
网络协议 网络安全 虚拟化
计算机网络——链路层(1)
计算机网络——链路层(1)
|
Windows
FL Studio2023完整版水果电脑编曲软件下载完美支持Windows、Mac操作系统
编曲主要考验电脑的处理器(CPU)性能、声卡。所以配置电脑的时候有条件的伙伴可以着重考虑这两方面。现在市面上惠普、戴尔、华为、苹果等品牌的电脑,在四五千这个范围的商务本,就可以胜任编曲工作。但是在一些较为庞大的工程中可能会出现卡顿的情况,对于占用CPU过大的情况,我们在宿主软件中是有解决办法的。不是非要专门花费巨资来购买顶尖配置的电脑才可以编曲的。
820 0
|
缓存 自然语言处理 Dubbo
深度剖析 Seata TCC 模式【图解 + 源码分析】
Seata 目前支持 AT 模式、XA 模式、TCC 模式和 SAGA 模式,之前文章更多谈及的是非侵入式的 AT 模式,今天带大家认识一下同样是二阶段提交的 TCC 模式。
1100 0
深度剖析 Seata TCC 模式【图解 + 源码分析】
|
存储 Docker 容器
Docker 的分层文件系统技术是干什么的?底层原理是什么?
Docker 的分层文件系统技术是干什么的?底层原理是什么?
658 0
|
运维 监控 Ubuntu
|
JavaScript 前端开发 Java
于SpringBoot打造在线教育系统(4)-- SpringBoot集成ElementUI
补一个代码,上一节漏掉了,就是访问后台首页的时候,还得需要一个视图接口啊。来,在这:
275 0

热门文章

最新文章