题目背景:

《爱与愁的故事第三弹·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(切记,n可不是开到20就OK的,地图范围开小了会WA的!!!)

AC Code:

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int N=101;//这是个坑点,N开小了就会WA
bool book[N][N];//标记数组
int m,n,p,q,head,tail;
//题目描述中说马不仅可以走日,也可以走田,所以一共有12个方向
int dx[]={-1,-2,-2,-2,-2,-1,1,2,2,2,2,1};
int dy[]={2,2,1,-1,-2,-2,-2,-2,-1,1,2,2};
struct node {int x,y,step;
}que[N*N];//定义结构体模拟队列
bool judge(int x,int y) {//不越界,并且这个点没有访问过 if(x>=1&&x<=N&&y>=1&&y<=N&&book[x][y]==false) {return true;}return false;
}
void bfs(int a,int b) {head=tail=1;//初始化队头队尾 que[head].x=a;//起点入队,这次终点是(1,1) que[head].y=b;que[head].step=0;//步数初始化为0 book[a][b]=true;//标记该点已走过 tail++;//起点入队,队尾向后移动一格 while(head<tail) {for(int i=0;i<12;i++) {//12个方向搜索 int tx=que[head].x+dx[i];int ty=que[head].y+dy[i];if(judge(tx,ty)) {//合法判断 book[tx][ty]=true;//标记新入队的点 que[tail].x=tx;//新的点入队 que[tail].y=ty;que[tail].step=que[head].step+1;//步数更新+1 tail++;//相应的队尾向后移动一格 if(tx==1&&ty==1) {//走到终点 printf("%d\n",que[tail-1].step);return ;}}}head++;//队头向后移动一格,继续下一个点的搜索 }return ;
}
int main() {memset(book,false,sizeof(book));//第一次搜索前,标记数组清零 scanf("%d %d",&m,&n);bfs(m,n);//搜索黑马 memset(book,false,sizeof(book));//注意:第二次搜索前,标记数组一定要再次清零!!! scanf("%d %d",&p,&q);bfs(p,q);//搜索白马 return 0;
}

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

  1. 洛谷 P1747 好奇怪的游戏

    https://www.luogu.com.cn/problem/P1747?contestId=67264 AC代码 #include<iostream> #include<cst ...

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

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

  3. 洛谷P4301 [CQOI2013]新Nim游戏

    洛谷P4301 [CQOI2013]新Nim游戏 题目描述 传统的Nim游戏是这样的:有一些火柴堆,每堆都有若干根火柴(不同堆的火柴数量可以不同).两个游戏者轮流操作,每次可以选一个火柴堆拿走若干根火 ...

  4. 洛谷P2006 赵神牛的游戏

    洛谷P2006 赵神牛的游戏 ac代码: #include using namespace std; int main () { long long int k,m,n,s,a,b; cin>& ...

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

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

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

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

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

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

  8. 【洛谷】P2356 弹珠游戏 c++

    题目背景 元宵节不放假挺郁闷的,于是时间机智的改到了星期6一整天! 题目描述 MedalPluS 和他的小伙伴 NOIRP 发掘了一个骨灰级别的游戏--超级弹珠. 游戏的内容是:在一个 n*n 的矩阵 ...

  9. P1747 好奇怪的游戏

    题目背景 <爱与愁的故事第三弹·shopping>娱乐章. 调调口味来道水题. 题目描述 爱与愁大神坐在公交车上无聊,于是玩起了手机.一款奇怪的游戏进入了爱与愁大神的眼帘:***(游戏名被 ...

  10. 洛谷:P1129 [ZJOI2007] 矩阵游戏

    题目链接:P1129 [ZJOI2007] 矩阵游戏 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 解题思路: 首先不知道最大匹配数概念的可以看看这篇博客: (5条消息) 二分图及 ...

最新文章

  1. Springboot源码分析之内嵌tomcat源码分析
  2. 小米note3无线显示电脑连接服务器,小米note3如何连接电脑 小米note3连接电脑没反应怎么办...
  3. Linux命令篇之usermod命令和passwd命令
  4. linux yum localinstall 解决本地rpm包的依赖问题
  5. js路由在php上面使用,React中路由使用详解
  6. 数据库-优化-MYSQL数据库设计规范
  7. Homebrew替换源
  8. 六、PHP框架Laravel学习笔记——响应设置和重定向
  9. 当使用easyui时,jquery的设置disabled属性方法失效
  10. python fun函数的功能是_python编程。假定输入字符串中只包含字母和*号,请编写函数fun,它的功能是将字符串中间的*号...
  11. 数据bag中的激光雷达数据和相机数据分割出来
  12. 单机dnf正在连接服务器,dnf提示正在连接服务器解决方案
  13. 小程序毕设作品之微信企业公司小程序毕业设计(6)开题答辩PPT
  14. BigDecimal 类型的金额 compareTo比较大小
  15. excel如何批量查询ip归属地?
  16. Markdown字体,字号,颜色和背景色设置
  17. git via xkcd
  18. 2022外卖霸王餐程序、外系统霸王餐H5/APP程序源码|美团/饿了么霸王餐系统 粉丝裂变 自带账单 在线支付提现等
  19. 空间机械臂Matlab/Simulink仿真程序自由漂浮空间机械臂(双臂)轨迹跟踪控制matlab仿真程序
  20. 大家都在学JAVA,那么学JAVA到底可以做什么?

热门文章

  1. 威尔逊置信区间 php,威尔逊置信区间排序
  2. 如何用python提取音频
  3. ElGamal算法加解密
  4. sht11温湿度传感器
  5. Codeforces Round #739 (Div. 3) A. Dislike of Threes
  6. K-means 小麦数据集
  7. python opencv 保存图片_【python-opencv 】一、图像的加载与保存
  8. C#.NET开源项目、机器学习、商务智能
  9. 【文字识别】TrOCR: Transformer-based Optical Character Recognition with Pre-trained Models
  10. VHDL D触发器 4位移位寄存器 例化+仿真(功能时序)