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

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日

悬赏问题

  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改