题目描述
​ 小明和李华在玩一种奇怪的象棋游戏,这个棋盘的大小为 500×500,有一种棋子,既能“马走日”也能“象走田”,现在棋盘上有两个棋子在位置 X1,Y1 和 X2,Y2 处,现求这两个棋子走到 (1,1) 点最少需要走多少步。

输入
​ 第一行输入两个数 X1,Y1;

​ 第二行输入两个数 X2,Y2。

输出
​ 第一行输出第一个棋子到 1,1 点的最少步数;

​ 第二行输出第二个棋子到 1,1 点的最少步数。

样例输入
12 16
18 10
样例输出
8
9
数据规模与约定
​ 时间限制:1 s

​ 内存限制:256 M

​ 100% 的数据保证 1≤X1,Y1,X2,Y2≤500

#include <iostream>
#include <queue>
using namespace std;struct node {int x,y, step;
};
int dir[12][2] = { 1,2,2,1,1,-2,-1,2,2,-1,-2,1,-1,-2,-2,-1,2,2,-2,2,2,-2,-2,-2 };
int check[505][505],check2[505][505];
queue<node> que;int main() {int x1, y1, x2, y2;cin >> x1 >> y1 >> x2 >> y2;que.push({x1,y1,0 });check[x1][y1] = 1;while (!que.empty()) {node t = que.front();que.pop();if (t.x == 1 && t.y == 1) {cout << t.step << endl;break;}for (int i = 0; i < 12; i++) {int x = t.x + dir[i][0];int y = t.y + dir[i][1];if (x<1 || y<1 || x>500 || y>500) {continue;}if (check[x][y] == 0) {que.push({ x,y,t.step + 1 });check[x][y] = 1;}}}while (!que.empty()) {que.pop();}que.push({ x2,y2,0 });check2[x2][y2] = 1;while (!que.empty()) {node t = que.front();que.pop();if (t.x == 1 && t.y == 1) {cout << t.step  << endl;break;}for (int i = 0; i < 12; i++) {int x = t.x + dir[i][0];int y = t.y + dir[i][1];if (x < 1 || y < 1 || x>500 || y>500) {continue;}if (check2[x][y] == 0) {que.push({ x,y,t.step + 1 });check2[x][y] = 1;}}}return 0;
}

题目描述
​ 小明和李华在玩一种奇怪的象棋游戏,这个棋盘的大小为 500×500,有一种棋子,既能“马走日”也能“象走田”,现在棋盘上只有这么一个棋子在位置 X,Y 处,现求这个棋子走到 (1,1) 点最少需要走多少步。

输入
​ 第一行输入一个整数 n 表示询问次数。(1≤n≤2000)
​ 接下来 n 行,每行两个数表示这次询问的棋子坐标 X,Y。(1≤x,y≤500)
输出
​ 对于每次询问输出一行一个数表示最少需要的步数。

样例输入
2
12 16
18 10
样例输出
8
9
数据规模与约定
​ 时间限制:1 s

​ 内存限制:256 M

​ 100% 的数据保证 1≤n≤2000

#include <iostream>
#include <queue>
using namespace std;struct node {int x,y, step;
};
int dir[12][2] = { 1,2,2,1,1,-2,-1,2,2,-1,-2,1,-1,-2,-2,-1,2,2,-2,2,2,-2,-2,-2 };
int check[505][505],ans[505][505];
queue<node> que;int main() {que.push({1,1,0 });check[1][1] = 1;while (!que.empty()) {node t = que.front();que.pop();for (int i = 0; i < 12; i++) {int x = t.x + dir[i][0];int y = t.y + dir[i][1];if (x<1 || y<1 || x>500 || y>500) {continue;}if (check[x][y] == 0) {que.push({ x,y,t.step + 1 });check[x][y] = 1;ans[x][y] = t.step + 1;}}}int n;cin >> n;for (int i = 0; i < n; i++) {int sx, sy;cin >> sx >> sy;cout << ans[sx][sy] << endl;}return 0;
}

奇怪的象棋游戏及升级版相关推荐

  1. java通用象棋游戏_在通用国际象棋界面周围模拟GraphQL包装器

    java通用象棋游戏 The Universal Chess Interface (UCI) has been around a long time and used by many chess en ...

  2. 团队-象棋游戏-设计文档

    项目名称:象棋游戏 项目参加人员:李一轩.程吉.刘泽宇.苑旺.李瑞鹏.周建伟 项目所需环境及工具:HBuilder.Google浏览器 页面设计:在网页中使用,并由图片来进行棋盘的显示 游戏功能设计: ...

  3. 团队-象棋游戏-需求分析

    HTML版象棋游戏需求分析: 一.在HTML页面中将象棋棋盘绘画出来 二.对PVE/PVP对战进行分析: 1.进行游戏胜负的分析,将红方/黑方的帅/将进行斩杀便取得胜利 2.游戏的各种功能按键(如:悔 ...

  4. java手机象棋软件下载,Java手机网络版象棋游戏附源码JAVA游戏源码下载

    运行于手机上的中国象棋游戏,鉴于JAVA J2ME技术,本游戏分服务端和客户端,导入JAR包即可在手机上运行,内有开发文档和运用说明. Java手机网络版象棋游戏附源码 (1 folders, 2 f ...

  5. c语言编程一个象棋游戏,急求:C语言编写的中国象棋游戏一个

    急求:C语言编写的中国象棋游戏一个 來源:互聯網  2009-09-08 12:30:35  評論 分類: 電腦/網絡 >> 程序設計 >> 其他編程語言 問題描述: 由于学习 ...

  6. 【笔记】JAVA 中国象棋游戏 部分源码

    /**  * 演示棋谱类  *  * @author cnlht  */ public class Demon extends JPanel implements ActionListener, Ru ...

  7. 朋友写的一个中国象棋游戏,JAVA代码

    朋友写的一个中国象棋游戏,JAVA代码.有兴趣的可以这里下载:中国象棋下载 (1)地址,不知现在还能下否....中国象棋历史悠久,吸引了无数的人研究,现对中国象棋的对战和实现棋谱的制作做如下的设计和说 ...

  8. C++900行代码实现中国象棋游戏规则以及相关功能

    本文章通过C++中的900行代码实现中国象棋游戏以及相关功能,主要的内容如下: 1.设置未进入游戏前的主页面: 2.绘制棋盘(如果有刚好尺寸的图片也可直接加载),包括棋盘网格,炮与兵的特殊标记绘制: ...

  9. Java网络象棋游戏(功能版)

    Java 网络象棋游戏(功能版) 网络象棋目录 客户端 走棋 悔棋 认输 保存棋谱 演示棋谱(自动.手动) 服务器端 与客户端相同 网络象棋目录 客户端 走棋 悔棋 认输 保存棋谱 演示棋谱(自动.手 ...

最新文章

  1. 年入50万,程序员众生相
  2. 201521123011 《java程序设计》 第9周学习总结
  3. 剑指offer:反转链表
  4. MS SQL 能否修改实例名称
  5. myeclipse背景设置
  6. 经过两个月的面试,我给你整理了这些面试考点(Java版)
  7. 选择虚拟主机服务器,选择虚拟主机服务器
  8. 【不行你来找我】webstorm设置背景图片
  9. [面试] C/C++ 语法(六)—— RTTI(运行时类型信息)
  10. cmd 下通过NTML代理访问Maven 库
  11. 关于Bom下标准模式和混杂模式!
  12. bt磁力链接转换种子中的问题
  13. 【Tensorflow2.0】8、tensorflow2.0_hdf5_savedmodel_pb模型转换[1]
  14. 软件开发都需要哪些岗位参与?
  15. 平行四边形(几何)题解
  16. Qt撤销回/撤框架:QUndoCommand
  17. 微信扫码关注登录(vue+node+express+mongodb)
  18. 解决Xmanager重复输入两次的问题
  19. Android4.0的StatusBar和NavigationBar
  20. 换了新的JDK后,Eclipse打不开

热门文章

  1. vue中axios设置表单头_VUE项目axios请求头更改Content-Type操作
  2. xml之dom4j解析
  3. hdu 2034 - 集合操作
  4. .net VS 全角问题
  5. React基础篇(五)css样式的使用
  6. BZOJ5343 [Ctsc2018]混合果汁 【二分 + 主席树】
  7. loadrunner / socket level data and wininet level data
  8. QTP报错“缺少对象WScript”
  9. POJ 2226 二分图最小覆盖
  10. 关于cocoa框架,你所要知道的一切(苹果官方文档,cocoa框架核心竞争力,必须收藏!)...