求助求助

P1126 机器人搬重物

码 风 感 人
by liqingyang @ 2020-07-23 22:56:31


抱歉,真的是看不懂,太奇怪了qwq
by liqingyang @ 2020-07-23 23:07:37


@[wmq2006](/user/330026) 您可以参考一下: ```cpp #include<iostream> #include<queue> using namespace std; struct point { int x,y,z,s; }; point make(int x,int y,int z,int s) { point t; t.x=x,t.y=y,t.z=z,t.s=s; return t; } bool mark[60][60][5],a[60][60]; int n,m,x1,y1,x2,y2,dx[5]={0,0,1,0,-1},dy[5]={0,1,0,-1,0}; queue<point> q; int main() { cin>>n>>m; for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { bool t; cin>>t; if(t) { a[i-1][j]=a[i][j]=a[i-1][j-1]=a[i][j-1]=1; } } } char c; cin>>x1>>y1>>x2>>y2>>c; int s=(c=='E'||c=='S')?((c=='S')+1):((c=='N')+3); q.push(make(x1,y1,0,s)); mark[x1][y1][s]=1; while(!q.empty()) { point t=q.front(); q.pop(); if(t.x==x2&&t.y==y2) { cout<<t.z<<endl; return 0; } for(int i=1,tx=t.x,ty=t.y;i<=3;i++) { tx+=dx[t.s],ty+=dy[t.s]; if(!tx||!ty||tx>=n||ty>=m||a[tx][ty]) { break; } if(mark[tx][ty][t.s]) { continue; } mark[tx][ty][t.s]=1; q.push(make(tx,ty,t.z+1,t.s)); } if(!mark[t.x][t.y][(t.s+2)%4+1]) { mark[t.x][t.y][(t.s+2)%4+1]=1; q.push(make(t.x,t.y,t.z+1,(t.s+2)%4+1)); } if(!mark[t.x][t.y][t.s%4+1]) { mark[t.x][t.y][t.s%4+1]=1; q.push(make(t.x,t.y,t.z+1,t.s%4+1)); } } cout<<-1<<endl; return 0; } ```
by liqingyang @ 2020-07-23 23:08:15


@[liqingyang](/user/272088) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
by wmq2006 @ 2020-07-24 10:47:51


|