题目背景
《爱与愁的故事第三弹·shopping》娱乐章。

调调口味来道水题。

题目描述
爱与愁大神坐在公交车上无聊,于是玩起了手机。

一款奇怪的游戏进入了爱与愁大神的眼帘:***(游戏名被打上了马赛克)。

这个游戏类似象棋,但是只有黑白马各一匹,在点 (x1, y1) 和 (x2, y2) 上,它们得从点 (x1, y1) 和 (x2, y2) 走到 (1, 1)。

这个游戏与普通象棋不同的地方是:马可以走“日”,也可以像象走“田”。

现在爱与愁大神想知道两匹马到 (1, 1) 的最少步数,你能帮他解决这个问题么?

输入格式
第 1 行:两个整数 x1,y1
第 2 行:两个整数 x2,y2

输出格式
第 1 行:黑马到 (1, 1) 的步数
第 2 行:白马到 (1, 1) 的步数

输入样例
12 16
18 10

输出样例
8
9

数据范围
对于 100% 数据:x1, y1, x2, y2 ≤ 20


题解
BFS:

#include <iostream>
#include <cstring>
#include <cstdio>
#include <queue>#define x first
#define y second
using namespace std;typedef pair<int, int > PII;const int N = 25;int x, y;
int dist[N][N];int dx[12] = {1, 1, -1, -1, 2, 2, -2, -2, -2, -2, 2, 2};
int dy[12] = {2, -2, 2, -2, 1, -1, 1, -1, -2, 2, -2, 2};int bfs(int x, int y)
{queue<PII> q;q.push(make_pair(1, 1));dist[1][1] = 0;while(q.size()){PII t = q.front();q.pop();if(t.x == x && t.y == y) return dist[x][y];for (int i = 0; i < 12; i ++){int a = t.x + dx[i], b = t.y + dy[i];if(a < 1 || a > 20 || b < 1 || b > 20 || dist[a][b] != -1) continue;q.push(make_pair(a, b));dist[a][b] = dist[t.x][t.y] + 1;}}
}int main()
{cin >> x >> y;memset(dist, -1, sizeof dist); cout << bfs(x, y) << endl;cin >> x >> y;memset(dist, -1, sizeof dist);cout << bfs(x, y) << endl;return 0;
}

好奇怪的游戏(洛谷)相关推荐

  1. 广度优先搜索——好奇怪的游戏(洛谷 P1747)

    题目选自洛谷P1747 简单的广搜模板题,4+8 = 12个方向进行bfs,目的地是(1,1) 每次查看队首是否到达,若到达(1,1) 则返回队首步长即可~ 需要注意的是,马走日和像走田的位置计算 i ...

  2. 广度优先搜索——奇怪的电梯(洛谷 P1135)

    广度优先搜索普及/提高篇,今天讲述的是洛谷里的一道题 奇怪的电梯(洛谷 P1135) 说一下我解题时候的思路吧. 首先读清楚题目,题目要求输出从 a楼 到 b楼的最少次数,楼层必须在[1,n]之间升降 ...

  3. 模拟——扫雷游戏(洛谷 P2670)

    模拟算法指的是让程序完整地按照题目叙述的方式运行得到答案! 此题选自洛谷P2670 也是一道简单模拟的题,没有必要列举出8个if语句逐一判断8个方向, 只需要用一个二维数组来保存8个方向即可. 需要注 ...

  4. AC日记——欧几里得的游戏 洛谷 P1290

    题目描述 欧几里德的两个后代Stan和Ollie正在玩一种数字游戏,这个游戏是他们的祖先欧几里德发明的.给定两个正整数M和N,从Stan开始,从其中较大的一个数,减去较小的数的正整数倍,当然,得到的数 ...

  5. 2019年东莞特长生 游戏(洛谷 P2661 信息传递)

    Description 某校科技节到了,有? 个同学(编号为1到?)正在玩一个信息传递的游戏.在游戏里每人都有一个固定的信息传递对象,其中,编号为? 的同学的信息传递对象是编号为??的同学. 游戏开始 ...

  6. 洛谷:P1129 [ZJOI2007] 矩阵游戏(二分图最大匹配)

    洛谷:矩阵游戏 洛谷题解就挺好 目的是使得最终(1,1)(2,2)-(n,n)都有一个点 可以看作为,最终状态需要每 i 行和 i 列都存在一个匹配 建图方式:对于 i 行 j 列的1点,建一条 i ...

  7. 题解 洛谷 P4042 [AHOI2014/JSOI2014]骑士游戏

    洛谷P4042[AHOI2014/JSOI2014]骑士游戏\color{#00F}{洛谷\ P4042\ [AHOI2014/JSOI2014]骑士游戏}洛谷 P4042 [AHOI2014/JSO ...

  8. 洛谷P1135:奇怪的电梯(lift)

    题目 奇怪的电梯 - 洛谷 思路讲解 这道题主要用的是BFS(广度优先搜索),对电梯路径进行广搜,最后得出答案 广搜,全称广度优先搜索,相较dfs来讲,它更像是一个涟漪. 啥意思嘞?画一个图你就懂了 ...

  9. 洛谷P1000 超级玛丽游戏C++题解

    首先我们看这道题的题目"超级玛丽游戏",第一道题就让我们写个游戏出来.结果点进去一看,顿时觉得这道题是在开玩笑,本题是洛谷的试机题目,可以帮助了解洛谷的使用. 建议完成本题目后继续 ...

  10. 洛谷解题P1000 超级玛丽游戏(C++)

    此文章关于洛谷P1000 超级玛丽游戏 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)https://www.luogu.com.cn/problem/P1000题目的解析: 先看题 ...

最新文章

  1. 可视化LassoCV的最佳alpha值
  2. 使用restTemplate报400或者415错误
  3. 12个不可不知的Sublime Text应用技巧和诀窍
  4. 网络推广中常见的网站建设细节中有哪些重点值得网络推广专员重视?
  5. 替换敏感字符,统计,乘法表,函数
  6. python列表生成式和if语句、if...else语句、zip函数结合使用
  7. nodejs里fs.readFile的相对路径转绝对路径问题
  8. js获取当前日期并格式化(多种格式)
  9. 平台式可复用的应用集成能力,助您敏捷、高效的完成企业数字化转型
  10. PATH和path,傻傻分不清
  11. Python列出文件夹下某类文件名的方法
  12. 详解Modbus通信协议---清晰易懂
  13. ASN.1编解码:asn1c-ORAN-E2AP编解码示例
  14. zabbix1.8.5安装
  15. paip. 'QObject::QObject(const QObject)' is private问题的解决.
  16. 【计量经济学论文】近十年烟台港发展情况的计量分析(节选)
  17. 工作一周年,带你认识杭州最好的电商公司
  18. Hijack攻击揭秘
  19. Linux安装rsync命令失败,rsync 常见错误与解决方法整理
  20. 随机森林回归预测r语言_R包 randomForest 进行随机森林分析

热门文章

  1. Excel计算年龄(足岁)问题:Excel中datedif和VBA中的datediff函数介绍
  2. python获取字典键值集合_Python集合字典
  3. 嵌入式软件工程师笔试题-1(含答案讲解)
  4. VIVO X7玫瑰金与银色边框颜色区分 方案(C++实现)
  5. Android 8.0系统源码分析--Camera processCaptureResult结果回传源码分析
  6. pvnet——自我总结
  7. 地磁基本知识(三)磁异常处理与转换
  8. MATLAB实现多峰高斯函数拟合/多峰高斯分布函数拟合(MATLAB全代码)
  9. SpringBoot整合流行框架(上) 究其原理 去其糟粕 如何快速上手所有流行框架整合的方法一文足以~
  10. WebSocket四种事件详解 入门篇(二)