图论 | 98. 所有可达路径

98. 所有可达路径

题目链接: 98. 所有可达路径

思路

  1. 先创建邻接矩阵,再深搜
  2. 写代码是需要注意的是acm格式,输入的格式要转化为int,输出要转化为str,用map()实现。

dfs

python 复制代码
def dfs(grid,node,n,path,res):
    if node == n:
        res.append(path[:])
        return
    for j in range(len(grid[0])):
        if grid[node-1][j] == 1:
            path.append(j+1)
            dfs(grid,j+1,n,path,res)
            path.pop()

def main():
    # 构造邻接矩阵
    n,m = map(int,input().split())
    grid = [[0]*n for _ in range(n)]
    for _ in range(m):
        node1,node2 = map(int,input().split())
        grid[node1-1][node2-1] = 1

    res = []
    dfs(grid,1,n,[1],res)
    if not res:
        print(-1)
    else:
        for path in res:
            print(' '.join(map(str,path)))
    

if __name__ == "__main__":
    main()  
相关推荐
txzrxz13 小时前
拓补排序讲解
c++·算法·图论·排序
稚南城才子,乌衣巷风流13 小时前
长链剖分(Long Chain Decomposition)算法详解
算法·深度优先·图论
北方的银狐-Zero15 小时前
OntoL对标Palantir功能简介-视频版
人工智能·图论·本体论
stolentime1 天前
SP8549 MAIN75 - BST again题解
c++·算法·二叉树·深度优先·图论·记忆化搜索·组合数学
wabs6663 天前
关于图论【卡码网100.最大岛屿的面积的思考】
数据结构·算法·图论
c238564 天前
下篇:回溯与剪枝的「智慧寻宝人」——DFS 进阶与网格 / 图论应用
c++·深度优先·图论·剪枝
wabs6664 天前
关于图论【广度优先搜索的理论基础】
算法·图论·宽度优先
稚南城才子,乌衣巷风流5 天前
DFS序详解:原理、应用与实现
算法·深度优先·图论
wabs6667 天前
关于图论【深度优先搜索的理论基础】
算法·深度优先·图论
wabs6667 天前
关于图论【力扣797.所有可能的路径的思考】
算法·leetcode·图论