求助!!(玄关)
  • 板块P1605 迷宫
  • 楼主EX_EXCRSE
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/7/15 17:06
  • 上次更新2024/7/15 18:15:05
查看原帖
求助!!(玄关)
877599
EX_EXCRSE楼主2024/7/15 17:06

以下是题解部分:

void walk(int x,int y)//定义walk;
{
    if(x==fx&&y==fy)//fx表示结束x坐标,fy表示结束y坐标;
    {
        total++;//总数增加;
        return;//返回,继续搜索;
    }
    else
    {
        for(int i=0;i<=3;i++)//0——3是左,右,下,上四个方向;
        {
            if(temp[x+dx[i]][y+dy[i]]==0&&map[x+dx[i]][y+dy[i]]==1)//判断没有走过和没有障碍;
            {
                temp[x][y]=1;//走过的地方打上标记;
                walk(x+dx[i],y+dy[i]);
                temp[x][y]=0;//还原状态;
            }    
        } 
    }
}

现在都没有弄懂关于还原,如果这俩if都不满足不就不会回溯了?比如以下情况(.表示墙,@表示路线,#表示目前位置):

.....
.#@@.
@@@@.
.....
2024/7/15 17:06
加载中...