sunflower758 2022-02-24 13:37 采纳率: 88%
浏览 57
已结题

Python 有关DFS求解迷宫问题

题目背景
给定一个N*M方格的迷宫,迷宫里有T处障碍,障碍处不可通过。给定起点坐标和终点坐标,问: 每个方格最多经过1次,有多少种从起点坐标到终点坐标的方案。在迷宫中移动有上下左右四种方式,每次只能移动一个方格。数据保证起点上没有障碍。

题目描述

输入格式
第一行N、M和T,N为行,M为列,T为障碍总数。第二行起点坐标SX,SY,终点坐标FX,FY。接下来T行,每行为障碍点的坐标。

输出格式
给定起点坐标和终点坐标,问每个方格最多经过1次,从起点坐标到终点坐标的方案总数。

输入输出样例
输入
2 2 1
1 1 2 2
1 2
输出
1
请问我的代码错在哪

N ,M ,T =map(int,input().split())
dianzhen =[]
for i in range(1,N+1):
    for j in range(1,M+1):
        dianzhen.append((i,j))
x0, y0, x1 ,y1 = map(int,input().split())
obstacle = []
for i in range(T):
    x, y =map(int,input().split())
    obstacle.append((x,y))
n = 0
Flag = True
def shensou(a, b):
    if a == x1 and b == y1:
        global n,Flag
        n += 1
        Flag = False
        print(n)
    if Flag:
        if (a,b) in dianzhen not in obstacle:
            for x,y in (0,1),(1,0),(0,-1),(-1,0):
                a +=x
                b +=y
                shensou(a,b)
                a -= x
                b -= y
shensou(x0,y0)
print(n)

  • 写回答

1条回答 默认 最新

  • SmallAntJ 2022-02-24 20:04
    关注

    题目要求每个方格最多访问1次,你的代码没有体现,你需要记录每个方格是否被访问。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

    报告相同问题?

    问题事件

    • 系统已结题 3月5日
    • 已采纳回答 2月25日
    • 创建了问题 2月24日

    悬赏问题

    • ¥30 宾馆客房管理系统可视化
    • ¥20 unity打光没有照亮物体
    • ¥25 powershell如何拷贝1周前的文件
    • ¥15 询问MYSQL查询SQLSERVER数据表并比较差异后,更新MYSQL的数据表
    • ¥15 关于#前端#的问题,请各位专家解答!
    • ¥15 最小生成树问题 Prim算法和Kruskal算法
    • ¥25 医院住院病人呼叫器设计
    • ¥15 不想和现在的团队合作了,怎么避免他们对程序动手脚
    • ¥20 C语言字符串不区分大小写字典排序相关问题
    • ¥15 关于#python#的问题:我希望通过逆向技术爬取1688搜索页下滑加载的数据