Find a way--hdu2612
题目链接:
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的更多相关文章
- 简单bfs(hdu2612)
#include<stdio.h>#include<string.h>#include<queue>#define INF 0x3f3f3f3fusing name ...
- hdu2612 Find a way
Problem Description Pass a year learning in Hangzhou, yifenfei arrival hometown Ningbo at finally. L ...
- hdu2612.。。。
原题链接 水了一天bfs了 题意:2个人分别从Y,M出发,到达其中任意一个“@” (图中有多个“@”点),2人到达的必须是同一个“@”点,求最短的路程和 思路:bfs搜2次,用一个2维数组记录到达各个 ...
- 暑假集训(1)第四弹 -----Find a way(Hdu2612)
Description Pass a year learning in Hangzhou, yifenfei arrival hometown Ningbo at finally. Leave Nin ...
- hdu2612(bfs)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2612 题意:求2个点到任意一个KFC的距离之和,使其最小. 分析:由两个点出发分别两次bfs,求得到每 ...
- hdu2612 Find a way BFS
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2612 思路: 裸的BFS,对于Y,M分别进行BFS,求出其分别到达各个点的最小时间: 然后对于@的点, ...
- HDU-2612.Find way .(不同起点不同终点的BFS)
我要被这个好用的memset气死了...... 真香 #include <cstring> #include <string> int main () { ]; memset( ...
- 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 ...
- HDU2612(KB1-N)
Find a way Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- HDU2612 -暑假集训-搜索进阶N
http://acm.hust.edu.cn/vjudge/contest/view.action?cid=82828#problem/N这两天总是因为一些小错误耽误时间,我希望自己可以细心点.珍惜 ...
随机推荐
- [Android] Nexus 7 二代连接 Windows 7
Android 设备的三大 USB 连接模式 MTP:Media Transfer Protocol - 媒体传输协议,Windows 下最常见的连接模式,是微软一种可以管理便携存储设备的协议.MTP ...
- 关于Kafka幂等producer的讨论
众所周知,Kafka 0.11.0.0版本正式支持精确一次处理语义(exactly once semantics,下称EOS).Kafka的EOS主要体现在3个方面: 幂等producer:保证发送单 ...
- python中的数据类型与json的数据类型之间的转化
什么是json: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析和生成.它基于JavaScript Programm ...
- PyQt4简单的窗口程序
下面的程序显示了一个简单的小窗口. #!/usr/bin/python # -*- coding:utf-8 -*- import sys from PyQt4 import QtGui app = ...
- iOS - Action Extension
上一篇<iOS开发 之 Share Extension>介绍了分享扩展的开发与使用,本篇主要还是讲述在系统分享菜单中最底下一栏的功能扩展:Action Extension,该扩展跟Shar ...
- 本版本延续MVC中的统一验证机制~续的这篇文章,本篇主要是对验证基类的扩展和改善(转)
本版本延续MVC中的统一验证机制~续的这篇文章,本篇主要是对验证基类的扩展和改善 namespace Web.Mvc.Extensions { #region 验证基类 /// <summary ...
- Android 冷启动时间优化
一 下载工具: 1.MaterialColdStart https://github.com/DreaminginCodeZH/MaterialColdStart 2.AndroidSVGScript ...
- 使用CMake编译跨平台静态库
在开始介绍如何使用CMake编译跨平台的静态库之前,先讲讲我在没有使用CMake之前所趟过的坑.因为很多开源的程序,比如png,都是自带编译脚本的.我们可以使用下列脚本来进行编译: . / con ...
- 【POJ2154】Color Pólya定理+欧拉函数
[POJ2154]Color 题意:求用$n$种颜色染$n$个珠子的项链的方案数.在旋转后相同的方案算作一种.答案对$P$取模. 询问次数$\le 3500$,$n\le 10^9,P\le 3000 ...
- Thinkphp 验证码点击刷新解决办法
HTML代码如下: <span> <input type="text" name="code" placeholder="验证码&q ...