大佬们为啥不对
  • 板块P2802 回家
  • 楼主apengya
  • 当前回复0
  • 已保存回复0
  • 发布时间2022/4/23 11:55
  • 上次更新2023/10/28 03:04:20
查看原帖
大佬们为啥不对
606774
apengya楼主2022/4/23 11:55
#include<iostream>
#include<cstring>
using namespace std;
int x[4]={1,-1,0,0},y[4]={0,0,1,-1};
int point[11][11],ji[11][11];
int xie=6,time=0,f,minn=9999999;
int m,n,c,d;
void run(int a,int b)
{
    if(ji[a][b]==0) return;
    if(point[a][b]==3)
    {
        if(time<minn) minn=time;
    }
    if(a<1||a>n||b<1||b>m)
    {
        return;
    }
    if(point[a][b]==0)return;
    if(xie==0)return;
    xie--;
    if(point[a][b]==4) xie=6;
    time++;
    ji[a][b]=0;
    for(int i=0;i<4;i++)
    {
    run(a+x[i],b+y[i]);
    a-=x[i];
    b-=y[i];
    xie--;
    time++;
    ji[a+x[i]][b+y[i]]=1;
    }
}
int main()
{
    memset(ji,1,sizeof(ji));
    f=minn;
    cin>>n>>m;
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=m;j++)
        {
            cin>>point[i][j];
            if(point[i][j]==2)
            c=i;
            d=j;
        }
    }
    run(c,d);
    if(minn==f) cout<<-1;
    else cout<<minn;
    return 0;
}
2022/4/23 11:55
加载中...