//先采用dfs写思路,但会超时//
//BFS专门用于解决求两点之间最短路的问题
//而DFS是用来解决求一个点到另一个点路径总数的问题
/*
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
const int N = 500;
int arr[N][N] = {0};
bool view[N][N];
int dx[8]={-2,-2,-1,-1,2,2,1,1};
int dy[8]={1,-1,2,-2,1,-1,2,-2};//坐标增量
int n,m,x,y;
void dfs(int x,int y,int ans)
{
view[x][y] = true;//标记起始点//
for(int i = 0;i<8;i++)
{
int ret = x + dx[i],res = y + dy[i];
if(ret>=1&&ret<=n&&res>=1&&res<=m)//限制数组范围,避免越界//
{
if(!view[ret][res])//标记以走过的点//
{
arr[ret][res] = ans;
view[ret][res] = true;
dfs(ret,res,ans+1);
}
else if(ans+1<arr[ret][res])//剪枝 //
{
arr[ret][res] = ans;
view[ret][res] = true;
dfs(ret,res,ans+1);
}
}
}
}
int main()
{
cin>>n>>m>>x>>y;
arr[x][y] = 0;
dfs(x,y,1);
for(int i=1;i<=n;i++)
{
for(int j = 1;j<=m;j++)
{
cout<<arr[i][j]<<" ";
}
cout<<endl;
}
return 0;
}
*/ /
//BFs//////////////////////////////////////
#include<iostream>
#include<bits/stdc++.h>
#include<queue>
using namespace std;
const int N = 500;
int arr[N][N];
bool view[N][N];
int n,m,x,y;
int dx[8]={-2,-2,-1,-1,2,2,1,1};
int dy[8]={1,-1,2,-2,1,-1,2,-2};//坐标增量//
struct res
{
int x;
int y;
};
queue<res>r;//申请队列,队列元素类型为res,队列名称为r//
int main()
{
memset(arr,-1,sizeof(arr));
cin>>n>>m>>x>>y;
res start;
start.x = x;
start.y = y;
int text = 0;
r.push(start);//起点入队//
arr[start.x][start.y] = 0;
view[start.x][start.y] = true;//标记起点//
while(!r.empty())//判空//
{
for(int i = 0;i<8;i++)
{
int tx = r.front().x + dx[i];
int ty = r.front().y + dy[i];
if(tx>=1&&tx<=n&&ty>=1&&ty<=m)
{
if(!view[tx][ty])
{
arr[tx][ty] = arr[r.front().x][ r.front().y]+1;
view[tx][ty] = true;
res end;
end.x = tx;
end.y = ty;
r.push(end);//插入队尾//
}
}
}
r.pop();//拓展完移除队首元素,否则陷入是循环//
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
cout<<arr[i][j]<<" ";
}
cout<<endl;
}
return 0;
}
林志呀
- 粉丝: 0
- 资源: 1
最新资源
- 永磁同步电机(PMSM)龙伯格(luenberger)观测器模型 控制:采用的是STM32的龙贝格无感控制方案 建模推导:b站搜索欧拉电子有详细公式推导及建模视频 参考文档:附2019年参考文献一篇
- 730536927547895【不共存】甜萝681 第一次用需要卸载官方的绿泡.apk
- 三相有源电力滤器APF仿真 波形从上到下分别是: 电网电流 APF电流 整流性负载电流 APF能够保证电网电流成正弦
- 遥感图像分类 MSTAR-8class数据集.zip
- 锁相环电路,有教程 输出频率800MHz或者1GHz, 采用Ring-VCO的结构,输入参考频率20MHz,分频器是40-50分频,电荷泵电流20uA,工艺是smic55nm 每个模块都有单独的tes
- 如何在电脑自带的画图软件中修改图片的背景填充颜色?.docx
- 1模型简介:COMSOL Multiphysi对注浆浆液渗流过程颗粒沉积引起的渗透率变化进行数值模拟研究 根据魏建平《裂隙煤体注浆浆液扩散规律及变质量渗流模型研究》,考虑不同注浆压力,进行了不同
- 实验报告、课程报告、研学报告
- Lecture 16-September 14-Extra lecture.pptx
- 3H桥式动态电压恢复器仿真模型 3H桥DVR,三个单相逆变器组合的 串联电压补偿设备仿真模型 可实现三相电压不对称跌落补偿 波形图从上到下依次是电网电压,DVR补偿电压,负载电压
- Lecture 18-September 16 (Tutorial)-Extra lecture.pptx
- 基于java的家乡特产网上商城的开题报告.docx
- Lecture 19-October 11.pptx
- 基于java的金融支付终端管理系统开题报告.docx
- Lecture 20-October 12 (Tutorial).pptx
- 基于java的咖啡馆管理系统开题报告.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈