奇怪的象棋游戏及升级版
题目描述
小明和李华在玩一种奇怪的象棋游戏,这个棋盘的大小为 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;
}
奇怪的象棋游戏及升级版相关推荐
- java通用象棋游戏_在通用国际象棋界面周围模拟GraphQL包装器
java通用象棋游戏 The Universal Chess Interface (UCI) has been around a long time and used by many chess en ...
- 团队-象棋游戏-设计文档
项目名称:象棋游戏 项目参加人员:李一轩.程吉.刘泽宇.苑旺.李瑞鹏.周建伟 项目所需环境及工具:HBuilder.Google浏览器 页面设计:在网页中使用,并由图片来进行棋盘的显示 游戏功能设计: ...
- 团队-象棋游戏-需求分析
HTML版象棋游戏需求分析: 一.在HTML页面中将象棋棋盘绘画出来 二.对PVE/PVP对战进行分析: 1.进行游戏胜负的分析,将红方/黑方的帅/将进行斩杀便取得胜利 2.游戏的各种功能按键(如:悔 ...
- java手机象棋软件下载,Java手机网络版象棋游戏附源码JAVA游戏源码下载
运行于手机上的中国象棋游戏,鉴于JAVA J2ME技术,本游戏分服务端和客户端,导入JAR包即可在手机上运行,内有开发文档和运用说明. Java手机网络版象棋游戏附源码 (1 folders, 2 f ...
- c语言编程一个象棋游戏,急求:C语言编写的中国象棋游戏一个
急求:C语言编写的中国象棋游戏一个 來源:互聯網 2009-09-08 12:30:35 評論 分類: 電腦/網絡 >> 程序設計 >> 其他編程語言 問題描述: 由于学习 ...
- 【笔记】JAVA 中国象棋游戏 部分源码
/** * 演示棋谱类 * * @author cnlht */ public class Demon extends JPanel implements ActionListener, Ru ...
- 朋友写的一个中国象棋游戏,JAVA代码
朋友写的一个中国象棋游戏,JAVA代码.有兴趣的可以这里下载:中国象棋下载 (1)地址,不知现在还能下否....中国象棋历史悠久,吸引了无数的人研究,现对中国象棋的对战和实现棋谱的制作做如下的设计和说 ...
- C++900行代码实现中国象棋游戏规则以及相关功能
本文章通过C++中的900行代码实现中国象棋游戏以及相关功能,主要的内容如下: 1.设置未进入游戏前的主页面: 2.绘制棋盘(如果有刚好尺寸的图片也可直接加载),包括棋盘网格,炮与兵的特殊标记绘制: ...
- Java网络象棋游戏(功能版)
Java 网络象棋游戏(功能版) 网络象棋目录 客户端 走棋 悔棋 认输 保存棋谱 演示棋谱(自动.手动) 服务器端 与客户端相同 网络象棋目录 客户端 走棋 悔棋 认输 保存棋谱 演示棋谱(自动.手 ...
最新文章
- 年入50万,程序员众生相
- 201521123011 《java程序设计》 第9周学习总结
- 剑指offer:反转链表
- MS SQL 能否修改实例名称
- myeclipse背景设置
- 经过两个月的面试,我给你整理了这些面试考点(Java版)
- 选择虚拟主机服务器,选择虚拟主机服务器
- 【不行你来找我】webstorm设置背景图片
- [面试] C/C++ 语法(六)—— RTTI(运行时类型信息)
- cmd 下通过NTML代理访问Maven 库
- 关于Bom下标准模式和混杂模式!
- bt磁力链接转换种子中的问题
- 【Tensorflow2.0】8、tensorflow2.0_hdf5_savedmodel_pb模型转换[1]
- 软件开发都需要哪些岗位参与?
- 平行四边形(几何)题解
- Qt撤销回/撤框架:QUndoCommand
- 微信扫码关注登录(vue+node+express+mongodb)
- 解决Xmanager重复输入两次的问题
- Android4.0的StatusBar和NavigationBar
- 换了新的JDK后,Eclipse打不开
热门文章
- vue中axios设置表单头_VUE项目axios请求头更改Content-Type操作
- xml之dom4j解析
- hdu 2034 - 集合操作
- .net VS 全角问题
- React基础篇(五)css样式的使用
- BZOJ5343 [Ctsc2018]混合果汁 【二分 + 主席树】
- loadrunner / socket level data and wininet level data
- QTP报错“缺少对象WScript”
- POJ 2226 二分图最小覆盖
- 关于cocoa框架,你所要知道的一切(苹果官方文档,cocoa框架核心竞争力,必须收藏!)...