当前位置: 首页 > news >正文

【C++ 真题】P1747 好奇怪的游戏

P1747 好奇怪的游戏

题目背景

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

调调口味来道水题。

题目描述

爱与愁大神坐在公交车上无聊,于是玩起了手机。一款奇怪的游戏进入了爱与愁大神的眼帘:***(游戏名被打上了马赛克)。这个游戏类似象棋,但是只有黑白马各一匹,在点 x 1 , y 1 x_1,y_1 x1,y1 x 2 , y 2 x_2,y_2 x2,y2 上。它们得从点 x 1 , y 1 x_1,y_1 x1,y1 x 2 , y 2 x_2,y_2 x2,y2 走到 ( 1 , 1 ) (1,1) (1,1)。这个游戏与普通象棋不同的地方是:马可以走“日”,也可以像象走“田”。现在爱与愁大神想知道两匹马到 ( 1 , 1 ) (1,1) (1,1) 的最少步数,你能帮他解决这个问题么?

注意不能走到 x x x y y y 坐标 ≤ 0 \le 0 0 的位置。

输入格式

第一行两个整数 x 1 , y 1 x_1,y_1 x1,y1

第二行两个整数 x 2 , y 2 x_2,y_2 x2,y2

输出格式

第一行一个整数,表示黑马到 ( 1 , 1 ) (1,1) (1,1) 的步数。

第二行一个整数,表示白马到 ( 1 , 1 ) (1,1) (1,1) 的步数。

输入输出样例 #1

输入 #1

12 16
18 10

输出 #1

8 
9

说明/提示

数据范围及约定

对于 100 % 100\% 100% 数据, 1 ≤ x 1 , y 1 , x 2 , y 2 ≤ 20 1\le x_1,y_1,x_2,y_2 \le 20 1x1,y1,x2,y220

题解

#include<bits/stdc++.h>
using namespace std;
const int N=1e3+7;int x11, y11, x22, y22, m, n, st = 0;
bool vis[N][N]; 
int rx[] = {0, -2, -2, -1, 1, 2, 2, 2, 2, 1, -1, -2, -2};
int ry[] = {0, -1, -2, -2, -2, -2, -1, 1, 2, 2, 2, 2, 1};//顺时针 struct pl{int x, y, s;
};queue<pl> pass;int bfs(int x, int y){if(x == 1 && y == 1) return 0;vis[x][y] = 1;while(!pass.empty()){pl pass1 = pass.front();pass.pop();for(int i=1;i<=12;++i){int nx = rx[i] + pass1.x;int ny = ry[i] + pass1.y;if(nx<=0 || nx>n || ny<=0 || ny>m || vis[nx][ny]) continue;if(nx == 1 && ny == 1) return pass1.s+1;vis[nx][ny] = 1;	pass.push({nx, ny, pass1.s+1}); }}return 0;
}int main(){cin>>x11>>y11>>x22>>y22;n = max(x11, x22)+1;m = max(y11, y22)+1;memset(vis, 0, sizeof(vis));while(!pass.empty()) pass.pop();pass.push({x11, y11, 0});cout<<bfs(x11, y11)<<endl;memset(vis, 0, sizeof(vis));while(!pass.empty()) pass.pop();pass.push({x22, y22, 0});cout<<bfs(x22, y22)<<endl;return 0;
}
http://www.lqws.cn/news/196039.html

相关文章:

  • 【数据结构初阶】单链表
  • 计算机操作系统(十五)死锁的概念与死锁的处理方法
  • 使用VHD虚拟磁盘安装双系统,避免磁盘分区
  • C语言:数据的存储
  • SQL Server全局搜索:在整个数据库中查找特定值的高效方法
  • 个人电脑部署本地大模型+UI
  • 从混乱到秩序:探索管理系统如何彻底改变工作流程
  • C++指针(二)
  • 怎么解决cesium加载模型太黑,程序崩溃,不显示,位置不对模型太大,Cesium加载gltf/glb模型后变暗
  • Windows账户管理,修改密码,创建帐户...(无需密码)
  • Python打卡第46天
  • N8N概述
  • [假面骑士] 龙骑浅谈
  • 第三章支线一 ·原能之核:语法起源
  • 驱控边界在哪里?知名舵机品牌伟创动力CNTE2025展带来答案
  • Vue基础(14)_列表过滤、列表排序
  • Python打卡训练营day46——2025.06.06
  • 【动手学深度学习】3.1. 线性回归
  • string类(详解)
  • 从零开始的python学习(七)P95+P96+P97+P98+P99+P100+P101
  • 【知识扫盲】如何由inq,ouq和totaltime计算tokens/s
  • Unity3D仿星露谷物语开发60之定制角色其他部位
  • 【时时三省】(C语言基础)局部变量和全局变量
  • Linux驱动:再看静态映射和动态映射
  • Java常用的判空方法
  • 东芝Toshiba DP-4528AG打印机信息
  • 视觉分析在人员行为属性检测中的应用
  • VMware Workstation 与 Hyper-V 不兼容。请先从系统中移除 Hyper-V 角色,然后再运
  • C++递归语句完全指南:从原理到实践
  • 数论——同余问题全家桶2 不定方程和同余方程