题目链接:

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. Github上star和fork比较高的vim配置方案

    https://github.com/amix/vimrchttps://github.com/humiaozuzu/dot-vimrchttps://github.com/spf13/spf13-v ...

  2. iOS - 直播总结(理论到实践)

    一.直播原理及流程 1.一个完整直播app原理 直播原理:把主播录制的视频,推送到服务器,在由服务器分发给观众观看. 直播环节:推流端(采集.美颜处理.编码.推流).服务端处理(转码.录制.截图.鉴黄 ...

  3. javaBean的理解总结

    javaBean简单理解:javaBean在MVC设计模型中是model,又称模型层,在一般的程序中,我们称它为数据层,就是用来设置数据的属性和一些行为,然后我会提供获取属性和设置属性的get/set ...

  4. Form表单验证神器: BootstrapValidator

    前言:做Web开发的我们,表单验证是再常见不过的需求了.友好的错误提示能增加用户体验.博主搜索bootstrap表单验证,搜到的结果大部分都是文中的主题:bootstrapvalidator.今天就来 ...

  5. [转载]使用PHP模拟HTTP认证

    [转载]使用PHP模拟HTTP认证 如果你希望在每个脚本的基础上实现口令保护功能,那么你可以通过结合header()函数和$PHP_AUTH_USER.$PHP_AUTH_PW全局变量的方法来创建一个 ...

  6. 【cs229-Lecture7】支持向量机(SVM)

    SVM不错的学习资料: 百度网盘链接: http://pan.baidu.com/s/1hqw0Rnm 密码: asec blog:http://www.blogjava.net/zhenandaci ...

  7. Javascript 细节优化技巧(转)

    break 语句和 continue 语句 break语句和continue语句都具有跳转作用,可以让代码不按既有的顺序执行. break语句用于跳出代码块或循环. var i = 0; while( ...

  8. C# 反射的深入了解

    Assembly.Load("")的使用说明如下;     并不是命名空间.常用的是程序集名称,也就是dll的名称 关于反射Assembly.Load("程序集" ...

  9. 题目1004:Median(qsort函数自定义cmp函数)

    题目链接:http://ac.jobdu.com/problem.php?pid=1004 详解链接:https://github.com/zpfbuaa/JobduInCPlusPlus 参考代码: ...

  10. 4606: [Apio2008]DNA

    4606: [Apio2008]DNA Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 63  Solved: 36[Submit][Status][D ...