[kuangbin] M - Find a way(简单广搜)
题目链接: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(简单广搜)相关推荐
- [HDU] 2612 Find a way - 用单源最短论经模拟的简单广搜
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2612 方法:其实就是从两个点分别探寻单源最短路径,两个点到同一个目标位置的最短路径都求出来,相加,然 ...
- POJ 3126 Prime Path 简单广搜(BFS)
题意:一个四位数的质数,每次只能变换一个数字,而且变换后的数也要为质数.给出两个四位数的质数,输出第一个数变换为第二个数的最少步骤. 利用广搜就能很快解决问题了.还有一个要注意的地方,千位要大于0.例 ...
- POJ1376简单广搜
题意: 给你一个n*m的矩阵,然后给你机器人的起点和终点,还有起点的方向,然后每次机器人有两种操作,左右旋转90度,或者是朝着原来的方向走1,2或者3步,机器人再走的过程中不能碰到格子,也 ...
- Catch That Cow——广搜
Catch That Cow Problem Description Farmer John has been informed of the location of a fugitive cow a ...
- 专题一:简单搜索、深搜、广搜
挑战程序设计竞赛(课后题难题汇总) 1. AOJ 0033 Ball(贪心) #include<cstdio> #include<algorithm> using namesp ...
- [HDU] 1181 变形课-简单建模后广搜
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1181 方法:以所有咒语看做一条起点为首字母,终点为末字母的有向边来建立有向图.然后在图中判断目标路径 ...
- 算法之路——深搜、广搜(简单搜索)
搜索 通过一定的顺序,枚举每一个数据(经常会通过一些判断条件去掉无意义的数据,即剪枝),找到想要的数据的过程. 深度优先搜索(dfs) 深度优先搜索属于图算法的一种,是一个针对图和树的算法,应为缩写为 ...
- 简单深搜广搜基本模板
简单搜索 DFS: 剪枝,条件 容易超时,超时后基本就是剪枝的问题/无限递归?,或者用广搜试试? 模板(自己的理解) int n,m;//一般输入的行列数/边界 int mov[4][2] = {1, ...
- 二叉树的深搜(DFS)与广搜(BFS)
转载自: https://blog.csdn.net/u011613367/article/details/50950408 数据结构中的有两个比较重要的算法.深度优先搜索和广度优先搜索. 二叉树中的 ...
最新文章
- jmeter启动警告项解决方案
- ionic3 java,ionic3-环境搭建问题
- spring-mvc里的 mvc:resources 及静态资源访问
- 1.5 编程基础之循环控制 11 整数的个数(2022.01.09)--python
- 使用 Shell (命令备忘)
- 演示:扩展ACL的配置与应用技巧
- Python-Telnet连接工具类
- js人脸识别,tracker.js前端人脸识别框架
- Multisim卸载删除经历(已重新安装)
- 通过故障恢复控制台修复xp系统引导文件丢失的方法
- worldPress数据库
- cmake和make的简单理解
- 国外支付(Paypal,Cybersource)
- 【C语言蓝桥杯每日一题】—— 单词分析
- CPU使用率的计算方法
- Tomcat简介、服务部署、虚拟主机配置及相关配置文件参数优化
- c语言switch中文版,C语言 switch语句小陷阱
- Navicat查看数据库密码
- 10款让人惊叹的HTML5图片动画特效
- 类的学习Java写查询星座小程序
热门文章
- Jmeter中中文乱码
- springside地址
- Cordova探险系列(一个)
- 列出本机正在监控的端口
- java.util.Date和java.sql.Date
- Entity Framework 无法对没有主键的视图映射实体的解决办法
- Java parallel control
- Android NDK: WARNING: APP_PLATFORM android-14 is larger than android:minSdkVersion 8
- 使用thrift进行跨语言调用(php c# java)
- easyUI menu动态添加