c++题目_P1443 马的遍历

P1443 马的遍历

# P1443 马的遍历

## 题目描述

有一个 $n \times m$ 的棋盘,在某个点 $(x, y)$ 上有一个马,要求你计算出马到达棋盘上任意一个点最少要走几步。

## 输入格式

输入只有一行四个整数,分别为 $n, m, x, y$。

## 输出格式

一个 $n \times m$ 的矩阵,代表马到达某个点最少要走几步(不能到达则输出 $-1$)。

## 输入输出样例 #1

### 输入 #1

```
3 3 1 1
```

### 输出 #1

```
0    3    2    
3    -1   1    
2    1    4
```

## 说明/提示

### 数据规模与约定

对于全部的测试点,保证 $1 \leq x \leq n \leq 400$,$1 \leq y \leq m \leq 400$。

题目描述 有一个n*m的棋盘(1<n,m<=400),在某个点上有一个马,要求你计算出马到达棋盘上任意一个点最少要走几步 输入格式 一行四个数据,棋盘的大小和马的坐标 输出格式 一个nm的矩阵,代表马到达某个点最少要走几步(左对齐,宽5格,不能到达则输出-1) 输入输出样例 输入 3 3 1 1 输出 0 3 2
3 -1 1
2 1 4
分析 这道题我们可以用深搜(BFS) 很简单,不会BFS的可以参考 骑士旅行(BFS) AC代码

#include<iostream>
#include<cstdio>
int n,m,x1,y1,head,tail,a[405][405],b[405][405],st[160005][3];
int dx[9]={0,1,1,-1,-1,2,2,-2,-2};//八个方向
int dy[9]={0,2,-2,2,-2,1,-1,1,-1};
void bfs()
{while(head<tail)//BFS模板{head++;for(int i=1;i<=8;i++)//八个方向{int x=st[head][0]+dx[i],y=st[head][1]+dy[i];if(x>=1&&x<=n&&y>=1&&y<=m)//是否出界if(a[x][y]==0)//是否被标记过{tail++;a[x][y]=1;//标记b[x][y]=st[tail][2]=st[head][2]+1;//赋值st[tail][0]=x;//更新坐标st[tail][1]=y;}}}
}
using namespace std;
int main()
{cin>>n>>m;cin>>x1>>y1;a[x1][y1]=1;//标记st[1][0]=x1;st[1][1]=y1;//坐标tail=1;//初值bfs();for(int i=1;i<=n;i++){for(int j=1;j<=m;j++)if(a[i][j]!=0)printf("%-5d",b[i][j]);//输出需要else printf("%-5d",-1);cout<<endl;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/76474.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

清华《数据挖掘算法与应用》K-means聚类算法

使用k均值聚类算法对表4.1中的数据进行聚类。代码参考P281。 创建一个名为 testSet.txt 的文本文件&#xff0c;将以下内容复制粘贴进去保存即可&#xff1a; 0 0 1 2 3 1 8 8 9 10 10 7 表4.1 # -*- coding: utf-8 -*- """ Created on Thu Apr 17 16:59:58 …

HarmonyOS-ArkUI V2工具类:AppStorageV2:应用全局UI状态存储

AppStorageV2是一个能够跨界面存储数据,管理数据的类。开发者可以使用AppStorageV2来存储全局UI状态变量数据。它提供的是应用级的全局共享能力,开发者可以通过connect绑定同一个key,进行跨ability数据共享。 概述 AppStorageV2是一个单例,创建时间是应用UI启动时。其目的…

打靶日记 zico2: 1

一、探测靶机IP&#xff08;进行信息收集&#xff09; 主机发现 arp-scan -lnmap -sS -sV -T5 -p- 192.168.10.20 -A二、进行目录枚举 发现dbadmin目录下有个test_db.php 进入后发现是一个登录界面&#xff0c;尝试弱口令&#xff0c;结果是admin&#xff0c;一试就出 得到加…

使用Java基于Geotools的SLD文件编程式创建与磁盘生成实战

前言 在地理信息系统&#xff08;GIS&#xff09;领域&#xff0c;地图的可视化呈现至关重要&#xff0c;而样式定义语言&#xff08;SLD&#xff09;文件为地图元素的样式配置提供了强大的支持。SLD 能够精确地定义地图图层中各类要素&#xff08;如点、线、面、文本等&#x…

kubernetes》》k8s》》Service

Kubernetes 中的 Service 是用于暴露应用服务的核心抽象&#xff0c;为 Pod 提供稳定的访问入口、负载均衡和服务发现机制。Service在Kubernetes中代表了一组Pod的逻辑集合&#xff0c;通过创建一个Service&#xff0c;可以为一组具有相同功能的容器应用提供一个统一的入口地址…

【HDFS】EC重构过程中的校验功能:DecodingValidator

一、动机 DecodingValidator是在HDFS-15759中引入的一个用于校验EC数据重构正确性的组件。 先说下引入DecodingValidator的动机,据很多已知的ISSUE(如HDFS-14768, HDFS-15186, HDFS-15240,这些目前都已经fix了)反馈, EC在重构的时候可能会有各种各样的问题,导致数据错误…

现代c++获取linux系统架构

现代c获取linux系统架构 前言一、使用命令获取系统架构二、使用c代码获取系统架构三、验证四、总结 前言 本文介绍一种使用c获取linux系统架构的方法。 一、使用命令获取系统架构 linux系统中可以使用arch或者uname -m命令来获取当前系统架构&#xff0c;如下图所示 archuna…

didFinishLaunching 与「主线程首次 idle」, 哪个是更优的启动结束时间点 ?

结论先行 在这两个候选时间点里—— application:didFinishLaunchingWithOptions: 执行结束主线程第一次进入 idle&#xff08;RunLoop kCFRunLoopBeforeWaiting&#xff09; 若你只能二选一&#xff0c;以「主线程首次 idle」作为 启动结束 更合理。它比 didFinishLaunchin…

Vue3 + TypeScript中defineEmits 类型定义解析

TypeScript 中 Vue 3 的 defineEmits 函数的类型定义&#xff0c;用于声明组件可以触发的事件。以下是分步解释&#xff1a; 1. 泛型定义 ts <"closeDialog" | "getApplySampleAndItemX"> 作用&#xff1a;定义允许的事件名称集合&#xff0c;即组…

树莓派超全系列教程文档--(34)树莓派配置GPIO

配置GPIO GPIO控制gpio 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 GPIO控制 gpio 通过 gpio 指令&#xff0c;可以在启动时将 GPIO 引脚设置为特定模式和值&#xff0c;而以前需要自定义 dt-blob.bin 文件。每一行都对一组引脚应用相同的设…

AladdinEdu(H卡GPU算力平台)使用教程: 1)注册与开通流程 2)插件使用流程

一、注册与开通流程 首先进入AladdinEdu官网&#xff1a;AladdinEdu-同学们用得起的H卡算力平台-高效做AI就上Aladdin 完成注册&#xff0c;并进行学生认证&#xff1a;学生认证账户&#xff0c;认证期间享受教育优惠价。 登录官网进入控制台 二、插件使用流程 VScode中…

精益数据分析(6/126):深入理解精益分析的核心要点

精益数据分析&#xff08;6/126&#xff09;&#xff1a;深入理解精益分析的核心要点 在创业和数据驱动的时代浪潮中&#xff0c;我们都在不断探索如何更好地利用数据推动业务发展。我希望通过和大家分享对《精益数据分析》的学习心得&#xff0c;一起在这个充满挑战和机遇的领…

2.深入剖析 Rust+Axum 类型安全路由系统

摘要 详细解读 RustAxum 路由系统的关键设计原理&#xff0c;涵盖基于 Rust 类型系统的路由匹配机制、动态路径参数与正则表达式验证以及嵌套路由与模块化组织等多种特性。 一、引言 在现代 Web 开发中&#xff0c;路由系统是构建 Web 应用的核心组件之一&#xff0c;它负责…

运筹学之模拟退火

目录 一、历史二、精髓思想三、案例与代码实现 一、历史 问&#xff1a;谁在什么时候提出模拟退火&#xff1f;答&#xff1a;模拟退火算法&#xff08;Simulated Annealing&#xff0c;SA&#xff09;是由斯图尔特柯尔斯基&#xff08;Scott Kirkpatrick&#xff09; 等人在 …

android测试依赖

Android 项目中常用的测试相关库 1. androidx.arch.core:core-testing:2.2.0 作用&#xff1a; 提供与 Android Architecture Components&#xff08;如 LiveData、ViewModel&#xff09;相关的测试工具。主要用于测试基于 LiveData 的异步操作。 常见功能&#xff1a; 即时…

stack,queue和priority_queue

1. stack 1.1 stack 的介绍 栈是一种容器适配器&#xff0c;专门设计用于LIFO环境&#xff08;后进先出&#xff09;&#xff0c;其中元素仅从容器的一端插入和提取。 容器适配器&#xff0c;也就是使用特定容器类的封装对象作为其底层容器&#xff0c;提供一组特定的成员函…

MinnowBoard MAX单板UEFI BIOS代码编译教程

此教程用于UEFI EDK2代码的研究&#xff0c;虽然EDK2框架代码开源&#xff0c;但是都是在模拟器上跑仿真&#xff0c;差点意思&#xff0c;搞过嵌入式的应该有一个共识&#xff0c;是骡子是马&#xff0c;你得把板子点亮啊。MinnowBoard MAX单板是intel10多年前发布的软硬件全部…

AI Transformers 架构体系 权重文件类型 safeterson和gguf格式转换【2-1】

模型权重文件&#xff1a;存储训练好的模型参数,也就是w和b&#xff0c;是模型推理和微调的基础 .pt、.ckpt、.safetensors、gguf 配置文件&#xff1a;确保模型架构的一致性&#xff0c;使得权重文件能够正确加载 config.json、generation_config.json 词汇表文件&#xff1a;…

K8S微服务部署及模拟故障观测

概述 本文介绍了如何在 Kubernetes (K8S) 集群中部署微服务&#xff0c;并模拟常见的故障场景&#xff08;如 Pod 故障、节点故障、网络故障&#xff09;以测试系统的容错能力。通过本实验&#xff0c;了解 Kubernetes 的自动恢复机制以及如何通过监控和日志分析快速定位和解决…

OpenStack Yoga版安装笔记(23)Swift安装

一、官方文档 Object Storage Install Guide — Swift 2.29.3.dev5 documentation 二、环境准备 之前的实验&#xff0c;已经有controller, compute1, block1节点&#xff0c;并已经完成Keystone、Glance、Nova、Neutron、Cinder等主要OpenStack Service的安装。 此处新增…