题目链接:

http://acm.hdu.edu.cn/showproblem.php?pid=2612

广搜题

注意:可能存在一个@两人都不能达到;

3 3

Y#@

.M#

@..

 #include<iostream>
#include<cstdio>
#include<string.h>
#include<algorithm>
#include<queue>
#include<stdlib.h>
#define inf 0x6ffffff
using namespace std; #define min(a,b) (a>b?b:a) #define N 205 int vis[N][N],m,n,b[N][N],dir[][]={ {,},{-,},{,},{,-} };
char maps[N][N]; struct node
{
int x,y,step;
}; void bfs(node s)
{
queue<node> Q;
node q;
s.step=;
Q.push(s);
vis[s.x][s.y]=; while(Q.size())
{
q=Q.front();
Q.pop();
if(maps[q.x][q.y]=='@')
{
b[q.x][q.y]+=q.step;
}
for(int i=;i<;i++)
{
s.x=q.x+dir[i][];
s.y=q.y+dir[i][];
if(s.x>=&&s.x<n&&s.y>=&&s.y<m&&vis[s.x][s.y]==&&maps[s.x][s.y]!='#')
{
vis[s.x][s.y]=;
s.step=q.step+;
Q.push(s);
}
}
}
} int main()
{
int i,j;
node s1,s2;
while(scanf("%d%d",&n,&m)!=EOF)
{
memset(maps,,sizeof(maps));
memset(b,,sizeof(b));
memset(vis,,sizeof(vis)); for(i=;i<n;i++)
{
for(j=;j<m;j++)
{
cin>>maps[i][j];
if(maps[i][j]=='Y')
{
s1.x=i;s1.y=j;
}
if(maps[i][j]=='M')
{
s2.x=i;s2.y=j;
}
}
} bfs(s1);
memset(vis,,sizeof(vis));
bfs(s2);
int Min=inf;
for(i=;i<n;i++)
{
for(j=;j<m;j++)
{
if(b[i][j]!=)//不能写成if(maps[i][j]=='@',原因在上面)
{
Min=min(Min,b[i][j]);
}
}
}
printf("%d\n",Min*);
}
return ;
}

Find a way--hdu2612的更多相关文章

  1. 简单bfs(hdu2612)

    #include<stdio.h>#include<string.h>#include<queue>#define INF 0x3f3f3f3fusing name ...

  2. hdu2612 Find a way

    Problem Description Pass a year learning in Hangzhou, yifenfei arrival hometown Ningbo at finally. L ...

  3. hdu2612.。。。

    原题链接 水了一天bfs了 题意:2个人分别从Y,M出发,到达其中任意一个“@” (图中有多个“@”点),2人到达的必须是同一个“@”点,求最短的路程和 思路:bfs搜2次,用一个2维数组记录到达各个 ...

  4. 暑假集训(1)第四弹 -----Find a way(Hdu2612)

    Description Pass a year learning in Hangzhou, yifenfei arrival hometown Ningbo at finally. Leave Nin ...

  5. hdu2612(bfs)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2612 题意:求2个点到任意一个KFC的距离之和,使其最小. 分析:由两个点出发分别两次bfs,求得到每 ...

  6. hdu2612 Find a way BFS

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2612 思路: 裸的BFS,对于Y,M分别进行BFS,求出其分别到达各个点的最小时间: 然后对于@的点, ...

  7. HDU-2612.Find way .(不同起点不同终点的BFS)

    我要被这个好用的memset气死了...... 真香 #include <cstring> #include <string> int main () { ]; memset( ...

  8. Hdu2612 Find a way 2017-01-18 14:52 59人阅读 评论(0) 收藏

    Find a way Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total Su ...

  9. HDU2612(KB1-N)

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

  10. HDU2612 -暑假集训-搜索进阶N

     http://acm.hust.edu.cn/vjudge/contest/view.action?cid=82828#problem/N这两天总是因为一些小错误耽误时间,我希望自己可以细心点.珍惜 ...

随机推荐

  1. linux下kill -9 pid 强制不能杀掉进程原因

    今天安装集群的时候,发现一个进程一直存在,kill -9 pid  也干不掉,就找找原因了. kill -9发送SIGKILL信号将其终止,但是以下两种情况不起作用:a.该进程处于"Zomb ...

  2. async await yield

    问题:async 和yield有什么区别? 无奈只能用“书到用时方恨少”来解释这个问题了.其实也是自己从开始编程就接触的是nodejs中的async 以及await ,yield几乎.貌似好像都没使用 ...

  3. SQL SERVER数据库新认识的一些基础知识

    最近要接触sql server的存储过程啦,在处理更加复杂的逻辑过程前,就来看一下这些sql的基础语法,感觉看啦一些复杂一点的sql语句,突然发现我是有多么的薄弱啊,所以在一些基础的语法上面我再重新整 ...

  4. thinkphp5.0 实现单文件上传功能

    思路是:在app/ceshi/fire下面有一个index操作方法来渲染显示前端文件,然后前端文件跳转到upload操作方法进行处理,成功显示"文件上传成功",失败显示错误. 首先 ...

  5. 【python3】Mac下selenium3+chrome驱动+python3

    环境: python3.6.4  seleinum3.11 事先准备好python3  环境.安装谷歌浏览器 1 安装seleinum pip3 install selenium 2 安装chrome ...

  6. SQL SERVER 2008 R2安全配置与防暴力破解

    https://blog.csdn.net/enweitech/article/details/49864215 0x00 sql server 2008 权限介绍 在访问sql server 200 ...

  7. Maven —— scope 元素的值及其含义

    1.compile 缺省值,所属依赖在所有的classpath中可用,同时它们也会被打包(随着项目一起发布). 2.provided 只有当JDK或者某个容器已提供该依赖之后才使用.如servlet. ...

  8. jquery 元素选择器集合

    一.基本选择器 1. id选择器(指定id元素) 将id="one"的元素背景色设置为黑色.(id选择器返单个元素) $(document).ready(function () { ...

  9. C#设计模式--设配器模式

    0.C#设计模式-简单工厂模式 1.C#设计模式--工厂方法模式 2.C#设计模式--抽象工厂模式 3.C#设计模式--单例模式 4.C#设计模式--建造者模式 5.C#设计模式--原型模式 设计模式 ...

  10. EXCEL2010如何显示工作表中单元格内的公式

    以EXCEL 2010为例   打开含有公式的EXCEL表格文件,图中红圈所示就是单元格的公式,默认是显示计算结果:   我们依次找到“公式”-〉“公式审核”-〉并点击“显示公式”:   点击后, 有 ...