B - ACM小组的古怪象棋 【地图型BFS+特殊方向】
ACM小组的Samsara和Staginner对中国象棋特别感兴趣,尤其对马(可能是因为这个棋子的走法比较多吧)的使用进行深入研究。今天他们又在 构思一个古怪的棋局:假如Samsara只有一个马了,而Staginner又只剩下一个将,两个棋子都在棋盘的一边,马不能出这一半棋盘的范围,另外这 一半棋盘的大小很奇特(n行m列)。Samsara想知道他的马最少需要跳几次才能吃掉Staginner的将(我们假定其不会移动)。当然这个光荣的任 务就落在了会编程的你的身上了。
Input
每组数据一行,分别为六个用空格分隔开的正整数n,m,x1,y1,x2,y2分别代表棋盘的大小n,m,以及将的坐标和马的坐标。(1<=x1,x2<=n<=20,1<=y1,y2<=m<=20,将和马的坐标不相同)
Output
输出对应也有若干行,请输出最少的移动步数,如果不能吃掉将则输出“-1”(不包括引号)。
Sample Input
8 8 5 1 4 5
Sample Output
3
1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #include<iostream> 5 #include<string> 6 #include<vector> 7 #include<stack> 8 #include<bitset> 9 #include<cstdlib> 10 #include<cmath> 11 #include<set> 12 #include<list> 13 #include<deque> 14 #include<map> 15 #include<queue> 16 #define ll long long 17 #define inf 0x3fffffff 18 using namespace std; 19 struct Node 20 { 21 int x,y,step; 22 }; 23 queue<Node> q; 24 int n,m; 25 int a[25][25]; 26 int vis[25][25]; 27 int d[][2]={{1,2},{1,-2},{-1,2},{-1,-2},{2,1},{2,-1},{-2,1},{-2,-1}}; 28 29 bool check(int x,int y) 30 { 31 if(x<0||x>=n||y<0||y>=m) 32 return false; 33 if(vis[x][y]) 34 return false; 35 return true; 36 } 37 int bfs(int x1,int y1,int x2,int y2) 38 { 39 memset(vis,0,sizeof(vis)); 40 q.push( (Node){x1,y1,0} ); 41 vis[x1][y1]=1; 42 while(!q.empty()) 43 { 44 Node u=q.front(); 45 q.pop(); 46 if(u.x==x2&&u.y==y2)//到达目标 47 { 48 return u.step; 49 } 50 for(int i=0;i<8;i++)//遍历八个方向 51 { 52 int x=u.x+d[i][0]; 53 int y=u.y+d[i][1]; 54 if(check(x,y))//检查边界 55 { 56 vis[x][y]=1; 57 q.push(Node{x,y,u.step+1});//步数加1 58 } 59 } 60 } 61 return -1;//如果不能吃掉将则输出“-1” 62 } 63 64 int main() 65 { 66 int x1,y1,x2,y2; 67 while(~scanf("%d%d%d%d%d%d",&n,&m,&x1,&y1,&x2,&y2)) 68 { 69 memset(vis,0,sizeof(vis)); 70 int ans= bfs(x2,y2,x1,y1); 71 printf("%d\n",ans); 72 } 73 return 0; 74 }
View Code
转载于:https://www.cnblogs.com/Roni-i/p/7404895.html
B - ACM小组的古怪象棋 【地图型BFS+特殊方向】相关推荐
- (CSU - 1224)ACM小组的古怪象棋
(CSU - 1224)ACM小组的古怪象棋 Time Limit: 1 Sec Memory Limit: 128 Mb Submitted: 446 Solved: 193 Description ...
- CSU 1224: ACM小组的古怪象棋(BFS)
ACM小组的古怪象棋 Time limit:1000 ms Memory limit:131072 kB OS:Windows Problem Description ACM小组的Samsara和St ...
- CSU 1224 ACM小组的古怪象棋
E - ACM小组的古怪象棋 Time Limit:1000MS Memory Limit:131072KB 64bit IO Format:%lld & %llu SubmitS ...
- coj_1224: ACM小组的古怪象棋
Description ACM小组的Samsara和Staginner对中国象棋特别感兴趣,尤其对马(可能是因为这个棋子的走法比较多吧)的使用进行深入研究.今天他们又在 构思一个古怪的棋局:假如Sam ...
- 交际过程的两个基本环节_小学语文“三学小组”模式口语交际课型教学流程及基本要求...
小学语文"三学小组"模式口语交际课型 教学流程及基本要求 一.教学流程 小学语文口语交际课"三学小组"模式,即每一个口语交际的学习有三个阶段:预学.互学.评学. ...
- java 地图模式_MapL 实现了百度地图定位以及感应方向和各种模式切换的 Demo Java Develop 238万源代码下载- www.pudn.com...
文件名称: MapL下载 收藏√ [ 5 4 3 2 1 ] 开发工具: Windows_Unix 文件大小: 5310 KB 上传时间: 2015-05-30 下载次数: 0 提 供 者 ...
- 【总结】最好的CV学习小组,超200个课时+10个方向+30个项目,从理论到实践全部系统掌握...
2022年有三AI-CV夏季划已经正式发布,有三AI-CV夏季划是我们最系统最重要的深度学习和计算机视觉学习计划小组,目标是在新手入门的基础之上,彻底掌握好CV的重要方向,同时提升模型设计与优化的工程 ...
- iOS 地图绘制折线 虚线 方向箭头 高德 Google
方向箭头样式只实现了高德 google 没有实现 官方文档没有找到实现方式 有找到的请务必告诉我下 谢谢 Google地图: 我是创建了一个单例来实现google相关的东西 这个是画线的方法 这里只是 ...
- ACM竞赛学习记录------迷宫寻宝(BFS广度优先搜索)
题目 洪尼玛今天准备去寻宝,在一个n*n (n行, n列)的迷宫中,存在着一个入口.一些墙壁以及一个宝藏.由于迷宫是四连通的,即在迷宫中的一个位置,只能走到与它直接相邻的其他四个位置(上.下.左.右) ...
最新文章
- 对称加密算法_技术分享丨这是一篇简单的小科普——什么是对称加密算法?(下)...
- WEB项目 后台接收前端数组
- 【数学建模】图论模型-dijkstra算法(最优化)
- alpine linux安装ftp,如何在Alpine Linux上安装GLPK?
- SPI接口通信协议详解:SPI时序、2线、3线、4线SPI及4种常用工作模式
- Web3d明日之星基于Javascript和OpenGL的技术
- mac下安装前端模板引擎Jinja2
- IMP-00041: 警告: 创建的对象带有编译警告解决办法
- javascript设计模式-适配器模式
- Atitit 信息检索 之音乐检索实践 艾提拉注 目录 1. 常规检索 歌手 歌名	1 1.1. 年代检索	1 1.2. 歌词检索(可以依靠web	1 1.3. 哼唱检索 原曲检索(可以使用酷
- 自由空间模型损耗计算详细说明
- 如何恢复计算机永久删除文件,回收站删除文件如何恢复
- 深度学习-TextDetection
- 2022年茶艺师(中级)考试题模拟考试题库模拟考试平台操作
- 大数据 (三) BI报表系统 superset 2 制作表格
- LookupError: Resource omw-1.4 not found. nltk3.7查找近反义词解决方法
- python输入n个数、输出最小的数字_程序查找最少的斐波纳契数以在Python中加到n?...
- 专注于企业元器件参数管理的物料库管理系统
- 20v转5v_12v转5v_5v转3.3v 5A用AH8316
- 简单日志(公开日记)
热门文章
- 【python】-- Socket接收大数据
- spine 2.1.27 Pro 叠加方式(Blending)
- 题目1198:a+b
- 引用dll文件要复制到本地
- 中文 WordPress 工具箱(1.2)与WP-Stats(2.2)冲突的解决办法
- sklearn 决策树例子_使用 sklearn 构建决策树并使用 Graphviz 绘制树结构
- go并发编程-理解不同并发场景下的go原语
- scala基础之隐式转换
- (8)FPGA实现1s闪灯代码(学无止境)
- (83)FPGA时钟抖动和时钟偏斜-面试必问(七)(第17天)