题目链接:https://vjudge.net/contest/215603#problem/M

其中三维数组dis将两个广搜合并到了一起

#include<iostream>
#include<sstream>
#include<algorithm>
#include<cstdio>
#include<string.h>
#include<cctype>
#include<string>
#include<cmath>
#include<vector>
#include<stack>
#include<queue>
#include<map>
#include<set>
using namespace std;
const int INF=220;
const int M=0x1f1f1f1f;
int n,m,z;
char cnt[INF][INF];
int dir[][2]= {{1,0},{0,-1},{-1,0},{0,1}};
int dis[INF][INF][2];
int vis[INF][INF];struct node
{int x,y;int step;node(int x,int y,int z):x(x),y(y),step(z){}node() {}
};void BFS(int x,int y)
{memset(vis,0,sizeof(vis));vis[x][y]=1;queue<node>q;q.push(node(x,y,0));while(!q.empty()){node top=q.front();q.pop();for(int i=0; i<4; i++){int newx=top.x+dir[i][0];int newy=top.y+dir[i][1];if(!vis[newx][newy]&& newx>=1&&newx<=n&&newy>=1&&newy<=m&&cnt[newx][newy]!='#'){vis[newx][newy]=1;dis[newx][newy][z]=top.step+1;q.push(node(newx,newy,top.step+1));}}}
}int main()
{while(cin>>n>>m){memset(dis,M,sizeof(dis));for(int i=1; i<=n; i++)scanf("%s",cnt[i]+1);for(int i=1; i<=n; i++)for(int j=1; j<=m; j++){if(cnt[i][j]=='Y'){z=1;BFS(i,j);}if(cnt[i][j]=='M'){z=0;BFS(i,j);}}int ans=M;for(int i=1; i<=n; i++){for(int j=1; j<=m; j++){if(cnt[i][j]=='@'){ans=min(ans,dis[i][j][0]+dis[i][j][1]);}}}cout<<ans*11<<endl;}return 0;
}

转载于:https://www.cnblogs.com/Fy1999/p/8656526.html

[kuangbin] M - Find a way(简单广搜)相关推荐

  1. [HDU] 2612 Find a way - 用单源最短论经模拟的简单广搜

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2612 方法:其实就是从两个点分别探寻单源最短路径,两个点到同一个目标位置的最短路径都求出来,相加,然 ...

  2. POJ 3126 Prime Path 简单广搜(BFS)

    题意:一个四位数的质数,每次只能变换一个数字,而且变换后的数也要为质数.给出两个四位数的质数,输出第一个数变换为第二个数的最少步骤. 利用广搜就能很快解决问题了.还有一个要注意的地方,千位要大于0.例 ...

  3. POJ1376简单广搜

    题意:       给你一个n*m的矩阵,然后给你机器人的起点和终点,还有起点的方向,然后每次机器人有两种操作,左右旋转90度,或者是朝着原来的方向走1,2或者3步,机器人再走的过程中不能碰到格子,也 ...

  4. Catch That Cow——广搜

    Catch That Cow Problem Description Farmer John has been informed of the location of a fugitive cow a ...

  5. 专题一:简单搜索、深搜、广搜

    挑战程序设计竞赛(课后题难题汇总) 1. AOJ 0033 Ball(贪心) #include<cstdio> #include<algorithm> using namesp ...

  6. [HDU] 1181 变形课-简单建模后广搜

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1181 方法:以所有咒语看做一条起点为首字母,终点为末字母的有向边来建立有向图.然后在图中判断目标路径 ...

  7. 算法之路——深搜、广搜(简单搜索)

    搜索 通过一定的顺序,枚举每一个数据(经常会通过一些判断条件去掉无意义的数据,即剪枝),找到想要的数据的过程. 深度优先搜索(dfs) 深度优先搜索属于图算法的一种,是一个针对图和树的算法,应为缩写为 ...

  8. 简单深搜广搜基本模板

    简单搜索 DFS: 剪枝,条件 容易超时,超时后基本就是剪枝的问题/无限递归?,或者用广搜试试? 模板(自己的理解) int n,m;//一般输入的行列数/边界 int mov[4][2] = {1, ...

  9. 二叉树的深搜(DFS)与广搜(BFS)

    转载自: https://blog.csdn.net/u011613367/article/details/50950408 数据结构中的有两个比较重要的算法.深度优先搜索和广度优先搜索. 二叉树中的 ...

最新文章

  1. jmeter启动警告项解决方案
  2. ionic3 java,ionic3-环境搭建问题
  3. spring-mvc里的 mvc:resources 及静态资源访问
  4. 1.5 编程基础之循环控制 11 整数的个数(2022.01.09)--python
  5. 使用 Shell (命令备忘)
  6. 演示:扩展ACL的配置与应用技巧
  7. Python-Telnet连接工具类
  8. js人脸识别,tracker.js前端人脸识别框架
  9. Multisim卸载删除经历(已重新安装)
  10. 通过故障恢复控制台修复xp系统引导文件丢失的方法
  11. worldPress数据库
  12. cmake和make的简单理解
  13. 国外支付(Paypal,Cybersource)
  14. 【C语言蓝桥杯每日一题】—— 单词分析
  15. CPU使用率的计算方法
  16. Tomcat简介、服务部署、虚拟主机配置及相关配置文件参数优化
  17. c语言switch中文版,C语言 switch语句小陷阱
  18. Navicat查看数据库密码
  19. 10款让人惊叹的HTML5图片动画特效
  20. 类的学习Java写查询星座小程序

热门文章

  1. Jmeter中中文乱码
  2. springside地址
  3. Cordova探险系列(一个)
  4. 列出本机正在监控的端口
  5. java.util.Date和java.sql.Date
  6. Entity Framework 无法对没有主键的视图映射实体的解决办法
  7. Java parallel control
  8. Android NDK: WARNING: APP_PLATFORM android-14 is larger than android:minSdkVersion 8
  9. 使用thrift进行跨语言调用(php c# java)
  10. easyUI menu动态添加