Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
180723 孔心悦 机器人搬重物 C++ 编译错误 0 0 MS 0 KB 1417 2024-08-21 17:39:38

Tests(0/0):


#include <bits/stdc++.h> using namespace std; int n,m,mp[55][55],x,y,ex,ey,dis[55][55],xx,yy; void zuoz(){ if(xx==1)xx=0,y=-1; if(yy==1)xx=1,yy=0; if(yy==-1)xx=-1,yy=0; if(xx==-1)xx=0,yy=1; } void youz(){ if(xx==1)xx=0,y=1; if(yy==1)xx=-1,yy=0; if(yy==-1)xx=1,yy=0; if(xx==-1)xx=0,yy=-1; } bool kz(int x,int y){ if() } int main(){ cin>>n>>m; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ cin>>mp[i][j]; } } char ch; cin>>x>>y>>ex>>ey>>ch; queue<int> qx,qy; qx.push(x);qy.push(y); if(ch=='N')xx=1,yy=0; if(ch=='S')xx=-1,yy=0; if(ch=='W')xx=0,yy=-1; if(ch=='E')xx=0,yy=1; memset(dis,-1,sizeof(dis)); dis[x][y]=0; while(!qx.empty()){ int x=qx.front(),y=qy.front(); qx.pop();qy.pop(); if(x==ex&&y==ey)break; for(int i=1;i<=5;i++){ int nx,ny; /*if(i==1){ nx=x+i*xx,ny=y+i*yy; if(kz(nx,ny)&&dis[x][y]==-1){ dis[nx][ny]=dis[x][y]+1; qx.push(nx);qy.push(ny); } }*/ //else if(i==2){ if(i<=3){ int flag=1; for(int j=1;j<=i-1;j++){ nx=x+j*xx,ny=y+j*yy; if(!kz(nx,ny)){ flag=0; } } if(flag){ nx=x+i*xx,ny=y+i*yy; if(kz(nx,ny)&&dis[x][y]==-1&&nx>=1&&nx<=n&&ny>=1&&ny<=m){ dis[nx][ny]=dis[x][y]+1; qx.push(nx);qy.push(ny); } } } if(i==4)zuoz(); if(i==5)youz(); //} } } cout<<dis[ex][ey]; return 0; }


测评信息: