欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 资讯 > 11.12.2024刷华为OD-集合的使用,递归回溯的使用

11.12.2024刷华为OD-集合的使用,递归回溯的使用

2024/11/19 12:15:07 来源:https://blog.csdn.net/qq_19875729/article/details/143724273  浏览:    关键词:11.12.2024刷华为OD-集合的使用,递归回溯的使用

文章目录

  • HJ41 集合的使用
  • HJ43 迷宫问题--递归回溯的使用
  • 语法知识记录

HJ41 集合的使用

链接
代码

HJ43 迷宫问题–递归回溯的使用

在这里插入图片描述

def dfs(x, y, path, grid):n = len(grid)m = len(grid[0])if x == n-1 and y == m-1:for cor in path:print("({},{})".format(cor[0],cor[1]))# 判断条件:1不能越界 2不能撞墙 3走过的不能走if 0 <= x+1 < n and 0 <= y < m and grid[x+1][y] != 1:path.append((x+1, y))grid[x+1][y] = 1dfs(x+1, y, path, grid)path.pop()grid[x + 1][y] = 0if 0 <= x-1 < n and 0 <= y < m and grid[x-1][y] != 1:path.append((x-1, y))grid[x-1][y] = 1dfs(x-1, y, path, grid)path.pop()grid[x - 1][y] = 0if 0 <= x < n and 0 <= y+1 < m and grid[x][y+1] != 1:path.append((x, y+1))grid[x][y+1] = 1dfs(x, y+1, path, grid)path.pop()grid[x][y + 1] = 0if 0 <= x < n and 0 <= y-1 < m and grid[x][y-1] != 1:path.append((x, y-1))grid[x][y-1] = 1dfs(x, y-1, path, grid)path.pop()grid[x][y - 1] = 0if __name__ == "__main__":n, m = map(int, input().split())grid = []for _ in range(n):grid.append(list(map(int, input().split())))# print(grid)path = [(0, 0)]grid[0][0] = 1dfs(0,0,path, grid)

语法知识记录

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com