社区讨论
90分第8点TLE求助
P1443马的遍历参与者 2已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @lw6dunmj
- 此快照首次捕获于
- 2024/05/14 20:42 2 年前
- 此快照最后确认于
- 2024/05/14 22:25 2 年前
CPP
#include<bits/stdc++.h>
#define F(x,y,z,o) for(int o=x;o<=y;o+=z)
using namespace std;
int n,m,sx,sy;
int a[505][505];
int d[505][505];
int dx[8]={-2,-1,1,2,2,1,-1,-2};
int dy[8]={1,2,2,1,-1,-2,-2,-1};
void dr()
{
cin>>n>>m>>sx>>sy;
F(1,n,1,i)
{
F(1,m,1,j)
{
d[i][j]=INT_MAX;
}
}
}
void dg(int dep,int x,int y)
{
if(dep<d[x][y])
{
d[x][y]=dep;
F(0,7,1,i)
{
int tx=x+dx[i];
int ty=y+dy[i];
if(tx<1||tx>n||ty<1||ty>m&&a[tx][ty]!=0) continue;
else dg(dep+1,tx,ty);
}
}
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
dr();
dg(0,sx,sy);
F(1,n,1,i)
{
F(1,m,1,j)
{
if(d[i][j]==INT_MAX) cout<<setw(4)<<-1<<' ';
else cout<<setw(4)<<d[i][j]<<' ';
}
cout<<'\n';
}
return 0;
}
回复
共 1 条回复,欢迎继续交流。
正在加载回复...