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这两天总是因为一些小错误耽误时间,我希望自己可以细心点.珍惜 ...
随机推荐
- X-WAF简单测试体验
X-WAF 最近才关注到的一款云WAF,花了一些时间搭建了一个环境,并做了一些测试,感觉比较适合新手来练习WAF Bypass. X-WAF是一款适用中.小企业的云WAF系统,让中.小企业也可以非常方 ...
- drawCall_01
在屏幕上渲染物体,引擎需要发出一个绘制调用来访问图形API(iOS系统中为OpenGL ES).每个绘制调用需要进行大量的工作来访问图形API,从而导致了CPU方面显著的性能开销. Unity在运 ...
- 冥想_ PHP抽奖程序概率算法
//概率算法,6个奖项 $prize_arr = array( '0' => array('id'=>1,'prize'=>'iphone6','v'=>1), '1' =&g ...
- 119、 android:hardwareAccelerated="true"or"false"硬件加速的重要性
每次做项目都会遇见一些特别简单的问题,但是又很费时间来让你解决的问题. 1.本身想实现一个简单的画廊效果,可是每次图片的显示都不能显示在正中的位置,真的很烦人,也花费了很长时间.最终还是知道了原因.解 ...
- Matlab 矩阵函数
clear; clc; A = rand() cond(A) %求矩阵A的条件数 Det(A) %求方阵A的行列式 Dot(A,B) %矩阵A与B的点积 Eig(A) %方阵A的特征值和特征向量 No ...
- 三元组顺序结构实现稀疏矩阵相加,行序优先(Java语言描述)
不用十字链表也可以稀疏矩阵相加时间复杂度最坏情况达到O(tuA + tuB);思路比较简单就不赘述了,代码如下: 三元组: package 行逻辑链接的顺序表实现稀疏矩阵的相乘; public cla ...
- webpack4 优化记录
webpack4.0优化那些事儿 一 缩小文件搜索范围 1 include & exclude 1) action 限制编译范围 2) useage module: { rules: [ { ...
- cmake openssl ios
1 下载源代码 git clone https://github.com/pol51/OpenSSL-CMake.git cd OpenSSL-CMake mkdir build && ...
- java(2) 面向对象
1.类的封装 *在定义一个类时,将类中的属性私有化,即使用prviate关键字来修饰,私有属性只能在它所在的类中被访问.为了能让外界访问私有属性,需要提供一些使用public修饰的公有方法,其中包括用 ...
- HDU 1455 Sticks(经典剪枝)
Sticks Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Sub ...