当前位置: 首页> 教育> 高考 > b2b是什么平台_手机编程软件下载_搜狗推广效果好吗_百度推广排名怎么做的

b2b是什么平台_手机编程软件下载_搜狗推广效果好吗_百度推广排名怎么做的

时间:2025/8/25 17:28:20来源:https://blog.csdn.net/wjl_8616/article/details/147355707 浏览次数:0次
b2b是什么平台_手机编程软件下载_搜狗推广效果好吗_百度推广排名怎么做的

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;}
}
关键字:b2b是什么平台_手机编程软件下载_搜狗推广效果好吗_百度推广排名怎么做的

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: