全jj re

P1746 离开中山路

来咯 ```cpp #include<bits/stdc++.h> using namespace std; char a[1100][1100]; int m,n; int sx,sy,ex,ey; int fx[5]={0,0,1,0,-1}; int fy[5]={0,1,0,-1,0}; int q[1000300][4]; int main() { int h=1,t=1; cin>>n; for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ cin>>a[i][j]; } } cin>>sx>>sy>>ex>>ey; a[sx][sy]='1'; q[1][1]=sx; q[1][2]=sy; q[1][3]=0; int tx,ty; while(h<=t){ for(int i=1;i<=4;i++){ tx=q[h][1]+fx[i]; ty=q[h][2]+fy[i]; if(a[tx][ty]=='0'){ a[tx][ty]='1'; t++; q[t][1]=tx; q[t][2]=ty; q[t][3]=q[h][3]+1; if(tx==ex&&ty==ey){ cout<<q[t][3]<<endl; return 0; } } } h++; } } ```
by Whitecrane @ 2024-08-20 09:12:57


@[zhizhenzqs](/user/1355715) 把格子标记为 `'1'` 应该在判断那个格子能走之后就立马标记,否则可能导致一个格子重复走很多次。
by LikablePie79015 @ 2024-08-20 09:15:05


已a xie xie @[LikablePie79015](/user/733515)
by zhizhenzqs @ 2024-08-20 11:01:22


|