AcWing 188. 武士风度的牛
知识点:广搜
李煜东的例题讲的那么难,习题确这么简单,不过这个样子也对,把最精华的东西放到例题里面好好讲讲
#include <bits/stdc++.h>using namespace std;const int N = 205;struct node {int x, y;node() {}node(int a, int b): x(a), y(b) {}
};int n, m, xs, ys, xe, ye;
int dx[8] = {-2, -2, -1, 1, 2, 2, 1, -1};
int dy[8] = {-1, 1, 2, 2, 1, -1, -2, -2};
string s[N];int bfs() {queue<node> q;q.push(node(xs, ys));int dist[N][N];memset(dist, -1, sizeof(dist));dist[xs][ys] = 0;while (!q.empty()) {node now = q.front(); q.pop();if (now.x == xe && now.y == ye) return dist[now.x][now.y];for (int i = 0; i < 8; i++) {int x1 = now.x + dx[i];int y1 = now.y + dy[i];if (x1 < 1 || x1 > n || y1 < 1 || y1 > m) continue;if (dist[x1][y1] != -1 || s[x1][y1] == '*') continue;q.push(node(x1, y1));dist[x1][y1] = dist[now.x][now.y] + 1;}}return -1;
}int main() {cin >> m >> n;for (int i = 1; i <= n; i++) {cin >> s[i];s[i] = " " + s[i];for (int j = 1; j <= m; j++) {if (s[i][j] == 'K') { xs = i; ys = j; s[i][j] = '.'; }if (s[i][j] == 'H') { xe = i; ye = j; s[i][j] = '.'; }}}cout << bfs();return 0;
}
AcWing 188. 武士风度的牛相关推荐
- AcWing 188. 武士风度的牛(BFS,C++)
AcWing 188. 武士风度的牛 题意 从一个起点遵循某种特殊规则走到终点,求最短的步数 分析 很显然,这题是bfs思想的应用. 1.首先输入数据,并在每次输入数据时判断起点和终点的坐标. 2.初 ...
- 算法提高课-搜索-最短路模型-AcWing 188. 武士风度的牛 :bfs、dist数组记录最小步数
题目分析 来源:acwing 分析:马走日,这里用bfs遍历马的行走过程,输出到达终点的最小步数. 使用bfs求到每个点的最小步数,需要开一个dist[][]数组,来记录起点到某点的最小步数. 队列里 ...
- AcWing 188. 武士风度的牛 BFS 水题
题目描述 农民John有很多牛,他想交易其中一头被Don称为The Knight的牛. 这头牛有一个独一无二的超能力,在农场里像Knight一样地跳(就是我们熟悉的象棋中马的走法). 虽然这头神奇的牛 ...
- 188.武士风度的牛
188.武士风度的牛 总结: 先找到进入floodfill的条件 然后加入把起点加入队列并进行标记 只要队列不空就对格子进行扩展(要除去自己因为自己已经被覆盖过了) 然后判定是否有效(是否超出范围,是 ...
- 188 武士风度的牛(bfs)
1. 问题描述: 农民 John 有很多牛,他想交易其中一头被 Don 称为 The Knight 的牛.这头牛有一个独一无二的超能力,在农场里像 Knight 一样地跳(就是我们熟悉的象棋中马的走法 ...
- 188. 武士风度的牛
农民 John 有很多牛,他想交易其中一头被 Don 称为 The Knight 的牛. 这头牛有一个独一无二的超能力,在农场里像 Knight 一样地跳(就是我们熟悉的象棋中马的走法). 虽然这头神 ...
- 188. 武士风度的牛 C++ bfs(宽度优先搜索)
农民John有很多牛,他想交易其中一头被Don称为The Knight的牛. 这头牛有一个独一无二的超能力,在农场里像Knight一样地跳(就是我们熟悉的象棋中马的走法). 虽然这头神奇的牛不能跳到树 ...
- 算法实践:武士风度的牛
武士风度的牛 描述 这头神奇的牛像其它牛一样喜欢吃草,给你一张地图,上面标注了The Knight的开始位置,树.灌木.石头以及其它障碍的位置,除此之外还有一捆草.现在你的任务是,确定The Knig ...
- 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 ...
最新文章
- JavaScript有哪三部分组成?
- 工信部部长苗圩于CITE发表致辞,指引三个方向推动国内电子信息产业持续发展...
- C++面试八股文快问快答のSTL篇
- [转] 理解SVG transform坐标变换
- 您的主机不满足在启用Hyper-V 或DeviceCredential Guard的情况下运行VMware player的最低要求
- Java练习 SDUT-1586_计算组合数
- html视频标签略缩图,JS可以截取video的标签视频缩略图吗?
- DHCP服务器--红色箭头
- 基于C4.5神经网络集成
- 什么是php 的精华,在用PHP开发中的精华和技巧总结
- python强制跳出while循环_python如何跳出while循环
- 代码随想录动态规划算法PDF
- CSS3颜色渐变整理
- linux中的本地化
- 用MicroPython开发ESP32-文件传输工具-ampy
- 完数什么意思_【寒假预习】人教版五年级数学(下册)知识点学习要点
- oracle中的userenv,Oracle 中的userenv()
- 赵小楼《天道》《遥远的救世主》深度解析(93)究竟真理真Xiang的踪迹
- 苹果手机iframe撑大父页解决办法
- 导入Excle数据至数据库 “外部表不是预期的格式”错误信息