哪位大佬帮我剪枝!!!

P1443 马的遍历

#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


|