~~tps是什么~~
by LiaoYF @ 2022-10-24 09:18:50
e····分数····
by Amano_Hina @ 2022-10-24 09:25:09
更新:3Wa+7TLE
```cpp
#include <bits/stdc++.h>
using namespace std;
unsigned long long int gcd(unsigned long long int a,unsigned long long int b)
{
return b ? gcd(b,a%b) : a;
}
unsigned long long int lcm(unsigned long long int a,unsigned long long int b)
{
return a*b/gcd(a,b);
}
int n,m,x,y;
int a[405][405];
bool f[405][405];
void dfs(int nowx,int nowy,int now)
{
if(nowx>n||nowx<=0||nowy>m||nowy<=0||(now>a[nowx][nowy]&&a[nowx][nowy]!=-1))
{
}else{
a[nowx][nowy]=min(now,a[nowx][nowy]);
if(a[nowx][nowy]==-1)
{
a[nowx][nowy]=now;
}
f[nowx][nowy]=1;
dfs(nowx+1,nowy+2,now+1);
dfs(nowx+1,nowy-2,now+1);
dfs(nowx-1,nowy+2,now+1);
dfs(nowx-1,nowy-2,now+1);
dfs(nowx+2,nowy+1,now+1);
dfs(nowx+2,nowy-1,now+1);
dfs(nowx-2,nowy+1,now+1);
dfs(nowx-2,nowy-1,now+1);
}
}
int main()
{
std::ios::sync_with_stdio(0);
cin.tie(0);
cin>>n>>m>>x>>y;
memset(a,-1,sizeof(a));
f[x][y]=0;
dfs(x,y,0);
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
cout<<a[i][j]<<" ";
}
cout<<endl;
}
return 0;
}
```
by Amano_Hina @ 2022-10-24 09:25:33
我用bfs做的,你也可以看看(c++党)
```
#include<bits/stdc++.h>
using namespace std;
queue<int> qx,qy;
bool v[404][404];
int n,m,xx,yy,a[404][404];
const int dx[]={-2,-2,-1,-1,1,1,2,2};
const int dy[]={-1,1,-2,2,-2,2,-1,1};
void bfs(int x,int y) {
v[x][y]=1;
a[x][y]=0;
qx.push(x);
qy.push(y);
while(!qx.empty()) {
int nx=qx.front();
int ny=qy.front();
qx.pop();
qy.pop();
for(int i=0;i<8;i++) {
int tx=nx+dx[i];
int ty=ny+dy[i];
if(tx<1||tx>n||ty<1||ty>m||v[tx][ty]) continue;
a[tx][ty]=a[nx][ny]+1;
v[tx][ty]=1;
qx.push(tx);
qy.push(ty);
}
}
return;
}
int main() {
scanf("%d%d%d%d",&n,&m,&xx,&yy);
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
a[i][j]=-1;
bfs(xx,yy);
for(int i=1;i<=n;i++) {
for(int j=1;j<=m;j++) printf("%d ",a[i][j]);
printf("\n");
}
return 0;
}
```
by melons_sundae @ 2022-10-24 10:13:51