码 风 感 人
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