#include<bits/stdc++.h>
using namespace std;
int a[401][401],n,xc,yc,m,yx[8]={2,-2,2,-2,-1,1,-1,1},yy[8]={1,1,-1,-1,2,2,-2,-2};
int ma(int x,int y,int i)
{
int j,k,z;
k=x;z=y;
for(j=0;j<8;j++)
if(k+yx[j]>=1&&k+yx[j]<=n&&z+yy[i]<=m&&z+yy[i]>=1)
{
if(i<a[k+yx[j]][z+yy[j]]||a[k+yx[j]][z+yy[j]]==-1)
a[k+yx[j]][z+yy[j]]=i;
ma(k+yx[j],z+yy[j],i+1);
}
}
int main()
{
int i,k;
cin>>n>>m;
for(i=1;i<=n;i++)
for(k=1;k<=m;k++)
a[i][k]=-1;
cin>>xc>>yc;
a[xc][yc]=0;
ma(xc,yc,1);
for(i=1;i<=n;i++)
{
for(k=1;k<=m;k++)
cout<<setw(5)<<a[i][k];
cout<<endl;
}
}1.
by 白烛葵 @ 2018-07-17 15:55:46
@[白烛葵](/space/show?uid=104710) [欢迎使用Markdown](https://www.luogu.org/wiki/show?name=%E5%B8%AE%E5%8A%A9%EF%BC%9Amarkdown)
by jwcub @ 2018-07-17 16:06:17
@[kevinhou](/space/show?uid=75437) ???
by 白烛葵 @ 2018-07-17 16:10:44
贴代码
![](https://cdn.luogu.com.cn/upload/pic/2314.png)
实在没办法把这个按照原样保留。。
```
printf("helloworld")
```
其实就是键盘1左边的那个,头尾各按3下,而且都独占一行。cpp可以改成pascal等。不加也可以。洛谷黑科技可以自己识别(有几率误判)。
虽然洛谷有黑科技,就算不用加这个,也可以通过人工智能识别代码块,但是也有几率误判,所以请尽量各加这3个撇在头尾!
by ⚡GG⚡ @ 2018-07-17 16:13:28
@[白烛葵](/space/show?uid=104710)
by ⚡GG⚡ @ 2018-07-17 16:13:34
@[垃圾一个](/space/show?uid=85933) 不会用啊
by 白烛葵 @ 2018-07-17 16:15:25
```
#include<bits/stdc++.h>
using namespace std;
int a[401][401],n,xc,yc,m,yx[8]={2,-2,2,-2,-1,1,-1,1},yy[8]={1,1,-1,-1,2,2,-2,-2};
int ma(int x,int y,int i)
{
int j,k,z;
k=x;z=y;
for(j=0;j<8;j++)
if(k+yx[j]>=1&&k+yx[j]<=n&&z+yy[i]<=m&&z+yy[i]>=1)
{
if(i<a[k+yx[j]][z+yy[j]]||a[k+yx[j]][z+yy[j]]==-1)
a[k+yx[j]][z+yy[j]]=i;
ma(k+yx[j],z+yy[j],i+1);
}
}
int main()
{
int i,k;
cin>>n>>m;
for(i=1;i<=n;i++)
for(k=1;k<=m;k++)
a[i][k]=-1;
cin>>xc>>yc;
a[xc][yc]=0;
ma(xc,yc,1);
for(i=1;i<=n;i++)
{
for(k=1;k<=m;k++)
cout<<left<<setw(5)<<a[i][k];
cout<<endl;
}
}
```
by 白烛葵 @ 2018-07-17 16:17:48
(```)
你的代码
(```)
用Markdown+去括号
by ⚡GG⚡ @ 2018-07-17 16:20:17
用bfs吧,会快一些
by Soulist @ 2018-08-10 19:58:45