BFS 64'(WA 1#10#11#12#)

P2802 回家

我暴力比你多对了个#11 ```cpp #include<bits/stdc++.h> using namespace std; long long n,m,a[10][10],fx,fy,minn=1e8+1; bool fun(long long x,long long y,long long z,long long l,long long s) { bool ans1,ans2,ans3,ans4; if(a[x][y]==0||z==0) return 0; if(a[x][y]==3) { if(s<minn) minn=s; return 1; } if(a[x][y]==4) z=6; if(l!=1&&x!=1) ans1=fun(x+1,y,z-1,3,s+1); if(l!=2&&y!=1) ans2=fun(x,y-1,z-1,4,s+1); if(l!=3&&x!=n) ans3=fun(x+1,y,z-1,1,s+1); if(l!=4&&y!=m) ans4=fun(x,y+1,z-1,2,s+1); if(ans1==1||ans2==1||ans3==1||ans4==1) return 1; return 0; } int main() { cin>>n>>m; for(int i=1;i<=n;i++) for(int k=1;k<=m;k++) { cin>>a[i][k]; if(a[i][k]==2) { fx=i;fy=k; } } if(fun(fx,fy,6,0,0)==0) cout<<-1; else cout<<minn; return 0; } ```
by wangjiawen @ 2023-06-12 21:48:32


|