题意:找到总时间最少的KFC

分析:两遍BFS 找KFC比较一下

注:有些地方的KFC可能到达不了,wa了一次

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <string>
#include <cmath>
#include <set>
#include <queue>
#include <cstring>
using namespace std;
typedef long long LL;
const int maxn=+;
const int INF=0x3f3f3f3f;
char s[maxn][maxn];
int a[maxn][maxn];
int b[maxn][maxn];
int n,m;
int dx[]={,,-,};
int dy[]={-,,,};
struct Point
{
int x,y;
Point(){}
Point(int p,int q)
{
x=p,y=q;
}
} o,t;
queue<Point>Y,M;
vector<Point>v;
int main()
{
while(~scanf("%d%d",&n,&m))
{
v.clear();
memset(a,-,sizeof(a));
memset(b,-,sizeof(b));
for(int i=;i<=n;++i)
scanf("%s",s[i]+);
for(int i=;i<=n;++i)
{
for(int j=;j<=m;++j)
{
if(s[i][j]=='@')v.push_back(Point(i,j));
else if(s[i][j]=='Y')Y.push(Point(i,j)),a[i][j]=;
else if(s[i][j]=='M')M.push(Point(i,j)),b[i][j]=;
}
}
while(!Y.empty())
{
o=Y.front();
Y.pop();
for(int i=;i<;++i)
{
t.x=o.x+dx[i];
t.y=o.y+dy[i];
if(t.x<||t.x>n||t.y<||t.y>m)continue;
if(s[t.x][t.y]=='#'||a[t.x][t.y]>=)continue;
a[t.x][t.y]=a[o.x][o.y]+;
Y.push(t);
}
}
while(!M.empty())
{
o=M.front();
M.pop();
for(int i=;i<;++i)
{
t.x=o.x+dx[i];
t.y=o.y+dy[i];
if(t.x<||t.x>n||t.y<||t.y>m)continue;
if(s[t.x][t.y]=='#'||b[t.x][t.y]>=)continue;
b[t.x][t.y]=b[o.x][o.y]+;
M.push(t);
}
}
int ans=INF;
for(int i=;i<v.size();++i)
{
int x=v[i].x,y=v[i].y;
if(a[x][y]==-||b[x][y]==-)continue;
ans=min(ans,a[x][y]+b[x][y]);
}
printf("%d\n",ans*);
}
return ;
}

HDU 2602 Find a way BFS搜索的更多相关文章

  1. hdu 1240:Asteroids!(三维BFS搜索)

    Asteroids! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total ...

  2. HDU 1312 Red and Black --- 入门搜索 BFS解法

    HDU 1312 题目大意: 一个地图里面有三种元素,分别为"@",".","#",其中@为人的起始位置,"#"可以想象 ...

  3. hdu--1026--Ignatius and the Princess I(bfs搜索+dfs(打印路径))

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

  4. HDU - 1430 魔板 【BFS + 康托展开 + 哈希】

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1430 思路 我刚开始 想到的 就是 康托展开 但是这个题目是 多组输入 即使用 康托展开 也是会T的 ...

  5. hiho_1139_二分+bfs搜索

    题目 给定N个点和M条边,从点1出发,到达点T.寻找路径上边的个数小于等于K的路径,求出所有满足条件的路径中最长边长度的最小值. 题目链接:二分     最小化最大值,考虑采用二分搜索.对所有的边长进 ...

  6. HDU 2717 Catch That Cow --- BFS

    HDU 2717 题目大意:在x坐标上,农夫在n,牛在k.农夫每次可以移动到n-1, n+1, n*2的点.求最少到达k的步数. 思路:从起点开始,分别按x-1,x+1,2*x三个方向进行BFS,最先 ...

  7. HDU 1312 Red and Black --- 入门搜索 DFS解法

    HDU 1312 题目大意: 一个地图里面有三种元素,分别为"@",".","#",其中@为人的起始位置,"#"可以想象 ...

  8. hdu 1226 超级密码(bfs+余数判重)

    题意:略过 分析:用m个数字组成一个能够被n整除的c进制数的最小值,实际上本题的关键就在于这个最小值上.  首先确定我们的思路是从小到大寻找.先查看一位数,即查看着m个数字是否能被n整除:若不能,就查 ...

  9. HDU 1885 Key Task 国家压缩+搜索

    点击打开链接 Key Task Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

随机推荐

  1. WebView重定向新开界面问题-b

    首先介绍下这个问题,iOS上WebView 如果想更贴近native,就要加载新URL的时候新开个界面,但是如果加载的链接有重定向的话,就会在中间开一个空白的界面,这个好烦.然后就是解决这个问题,采用 ...

  2. HTTP verb的安全性和幂等性

    Http协议规定了不同方法的安全特性和幂等特性,作为服务提供者的服务器必需为客户端提供这些特性. 安全性,仅指该方法的多次调用不会产生副作用,不涉及传统意义上的“安全”,这里的副作用是指资源状态.即, ...

  3. 1063: [Noi2008]道路设计 - BZOJ

    Description Z 国坐落于遥远而又神奇的东方半岛上,在小Z 的统治时代公路成为这里主要的交通手段.Z 国共有n 座城市,一些城市之间由双向的公路所连接.非常神奇的是Z 国的每个城市所处的经度 ...

  4. c++ 链接

    header.h #ifndef HEADER_H #define HEADER_H unsigned long getFac(unsigned short num); ; #endif // HEA ...

  5. Binary search for the first element greater than target

    We all know how to search through an array for an element whose value equals the target value, but h ...

  6. 在js中获取easyui datagrid的数据

    可以在页面对datagrid的数据直接进行修改,然后提交到数据库,但是要求在提交前获取datagrid的所有行的数据.API提供了getData方法,但是怎么用了,没说. 最后这样写才搞定 var a ...

  7. javascript禁用与启用select标签(实用版)

    <html><head><script type="text/javascript">function disable()  {  docume ...

  8. Samza文档翻译 : Backgroud

    这一页提供了关于流处理的背景知识,描述什么是Samza,以及它为何而生. what is messaging?什么叫消息? 消息系统是用来实现近实时异步计算的一种流行方式.当事件发生时,消息可以被放在 ...

  9. POJ 3792 Area of Polycubes(思维)

    点我看题目 题意 : 其实我也说不太清楚题意,就是给你很多方块,每放一块方块,都要和前一块有一个面相接,如果不相接,就输出NO,并输出是第几个方块不相接的.如果满足每一个都和前边相接,那就判断所有没有 ...

  10. js jquery学习

    1.js api   http://api.vfreesoft.com/ 2.26个jquery小技巧  http://www.cnblogs.com/shouce/p/5084565.html 3. ...