AcWing 188 武士风度的牛
BFS简单应用,注意马走日就行了

#include<bits/stdc++.h>using namespace std;const int N = 200, M = N * N; #define x first
#define y secondtypedef pair<int, int>PII;int n;
int c, r;
char g[N][N];
PII q[M];
int dx[8] = {-1, -2, -2, -1, 1, 2, 2, 1};
int dy[8] = {-2, -1, 1, 2, 2, 1, -1, -2};
int ans;
bool st[N][N];
int dis[N][N];
int a1, a2;void bfs(int sx, int sy){st[sx][sy] = true;q[0] = {sx, sy};int hh = 0, tt = 0;//cout<<"----"<<endl;while(hh <= tt){auto t = q[hh ++ ];for(int i = 0; i < 8; i ++ ){int xx = t.x + dx[i], yy = t.y + dy[i];if(xx < 0 || xx >= r || yy < 0 || yy >= c || st[xx][yy] || g[xx][yy] == '*'){continue;}if(g[xx][yy] == 'H'){dis[xx][yy] = min(dis[xx][yy], dis[t.x][t.y] + 1);continue;}//  cout<<xx<<' '<<yy<<' '<<dis[xx][yy]<<endl;dis[xx][yy] = dis[t.x][t.y] + 1;q[ ++ tt] = {xx, yy};st[xx][yy] = 1;}}
}int main()
{cin>>c>>r;memset(dis, 0x3f, sizeof dis);for(int i = 0; i < r; i ++ ){for(int j = 0; j < c; j ++ ){cin>>g[i][j];if(g[i][j] == 'H'){a1 = i, a2 = j;}     }}for(int i = 0; i < r; i ++ ){for(int j = 0; j < c; j ++ ){if(g[i][j] == 'K'){dis[i][j] = 0;bfs(i, j);} }}cout<<dis[a1][a2]<<endl;return 0;
}

AcWing 188 武士风度的牛 题解(BFS)相关推荐

  1. 算法提高课-搜索-最短路模型-AcWing 188. 武士风度的牛 :bfs、dist数组记录最小步数

    题目分析 来源:acwing 分析:马走日,这里用bfs遍历马的行走过程,输出到达终点的最小步数. 使用bfs求到每个点的最小步数,需要开一个dist[][]数组,来记录起点到某点的最小步数. 队列里 ...

  2. AcWing 188. 武士风度的牛(BFS,C++)

    AcWing 188. 武士风度的牛 题意 从一个起点遵循某种特殊规则走到终点,求最短的步数 分析 很显然,这题是bfs思想的应用. 1.首先输入数据,并在每次输入数据时判断起点和终点的坐标. 2.初 ...

  3. AcWing 188. 武士风度的牛 BFS 水题

    题目描述 农民John有很多牛,他想交易其中一头被Don称为The Knight的牛. 这头牛有一个独一无二的超能力,在农场里像Knight一样地跳(就是我们熟悉的象棋中马的走法). 虽然这头神奇的牛 ...

  4. 188 武士风度的牛(bfs)

    1. 问题描述: 农民 John 有很多牛,他想交易其中一头被 Don 称为 The Knight 的牛.这头牛有一个独一无二的超能力,在农场里像 Knight 一样地跳(就是我们熟悉的象棋中马的走法 ...

  5. 188. 武士风度的牛 C++ bfs(宽度优先搜索)

    农民John有很多牛,他想交易其中一头被Don称为The Knight的牛. 这头牛有一个独一无二的超能力,在农场里像Knight一样地跳(就是我们熟悉的象棋中马的走法). 虽然这头神奇的牛不能跳到树 ...

  6. AcWing 188. 武士风度的牛

    知识点:广搜 李煜东的例题讲的那么难,习题确这么简单,不过这个样子也对,把最精华的东西放到例题里面好好讲讲 #include <bits/stdc++.h>using namespace ...

  7. 188.武士风度的牛

    188.武士风度的牛 总结: 先找到进入floodfill的条件 然后加入把起点加入队列并进行标记 只要队列不空就对格子进行扩展(要除去自己因为自己已经被覆盖过了) 然后判定是否有效(是否超出范围,是 ...

  8. 188. 武士风度的牛

    农民 John 有很多牛,他想交易其中一头被 Don 称为 The Knight 的牛. 这头牛有一个独一无二的超能力,在农场里像 Knight 一样地跳(就是我们熟悉的象棋中马的走法). 虽然这头神 ...

  9. 算法实践:武士风度的牛

    武士风度的牛 描述 这头神奇的牛像其它牛一样喜欢吃草,给你一张地图,上面标注了The Knight的开始位置,树.灌木.石头以及其它障碍的位置,除此之外还有一捆草.现在你的任务是,确定The Knig ...

  10. CH2906 武士风度的牛 BFS

    题目链接 http://noi-test.zzstep.com/contest/0x29%E3%80%8C%E6%90%9C%E7%B4%A2%E3%80%8D%E7%BB%83%E4%B9%A0/2 ...

最新文章

  1. python画图颜色-python中matplotlib的颜色及线条控制的示例
  2. 学python需要哪些基础-python 学习,需要有哪些基础呢?
  3. Java--23种设计模式之decorator模式
  4. ajax成功或失败的原因,实际上成功后,AJAX发布请求报告失败
  5. 安卓APP_ 四大基本组件(1)—— Activity
  6. visual studio 2017搭建linux c++开发环境
  7. 修改网课播放器倍速播放
  8. 三国群雄传ol服务器 修改,三国群英传ol 单机版,如何修改国战、暴率、经验等问题?...
  9. 杀软和防火墙简单列表
  10. CSDN,hen hao,hen qiang da
  11. 利用浏览器检查获取网页视频
  12. 计算机学科专业知识两门课,计算机学科两门专业课的融会贯通教学改革探讨
  13. KUBUNTU 10.04 的安装与配置详解
  14. WINDOWS更改无线网卡MAC地址的方法
  15. lect01_codes03_eg梯度下降
  16. 2021-10-19 学习笔记 什么是 JK 触发器?
  17. 翻译:Panda3D Manual/V. Programming with Panda/E. Camera Control
  18. 基于STC15W408AS蓝牙智能小车
  19. 软考知识点笔记之----制订项目管理计划
  20. LeetCode 刷题之旅(2020.05.22)——105. 从前序与中序遍历序列构造二叉树(中)

热门文章

  1. 软考计算机中级网络工程师,计算机软考中级哪个最有用
  2. 一文教你如何快速高效画出技术架构图
  3. 基于微信小程序驾校报名系统(微信小程序毕业设计)
  4. VxWorks Fuzzing 之道:VxWorks 工控实时操作系统漏洞挖掘调试与利用揭秘
  5. matlab空间计量gmm估计,stata做GMM估计的具体步骤_stata gmm操作步骤
  6. win10用win7的图片查看器
  7. 【AI模型部署】maskrcnn在tfserver部署以及调用时遇到问题:Servable not found for request “xx”、‘incompatible_shape_error‘
  8. 未来教育题库 * **java二级第28套试题** *
  9. 单行文本溢出省略号显示
  10. 软件测试的岗位划分和主要工作内容是怎样的?