70分,大神救救我

P1301 魔鬼之城

~~如此毒瘤的码风令人不堪入目~~
by 紫陰花 @ 2019-10-27 16:14:43


@[lalalahahaha](/space/show?uid=235431) ```cpp # include<iostream> # include<stdio.h> # include<cstring> using namespace std; int n,m; int a[101][101]; int s[101][101]; int mvheng[8]={1,1,-1,-1,1,-1,0,0}; int mvzong[8]={0,1,-1,0,-1,1,-1,1}; int f[1000001][4];//0横1纵2最少步数3方向 bool use[101][101][8]; void bfs() { int h=1,t=1; f[1][0]=1; f[1][1]=1; f[1][3]=-1; while(h<=t) { for(int i=0;i<8;i++) if(i!=f[h][3]) { int x=f[h][0]+mvheng[i]*a[f[h][0]][f[h][1]]; int y=f[h][1]+mvzong[i]*a[f[h][0]][f[h][1]]; if(x>=1&&x<=m&&y>=1&&y<=n&&!use[x][y][i]) { use[x][y][i]=1; s[x][y]=f[h][2]+1; t++; f[t][0]=x; f[t][1]=y; f[t][2]=s[x][y]; f[t][3]=i; } if(s[m][n]>0) return; } h++; } return; } int main() { memset(s,-1,sizeof(s)); scanf("%d %d",&n,&m); for(int i=1;i<=m;i++) for(int j=1;j<=n;j++) scanf("%d",&a[i][j]); s[1][1]=0; bfs(); if(s[m][n]>0) printf("%d",s[m][n]); else printf("NEVER"); return 0; } ```
by PXY_lover @ 2019-10-27 16:32:12


@[Doom_Deterrence](/space/show?uid=232323) 哈哈
by lalalahahaha @ 2019-10-27 16:55:44


@[三浩月舞](/space/show?uid=71174) 。。。。
by lalalahahaha @ 2019-10-27 16:56:01


|