图论 | 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()  
相关推荐
不染尘.8 小时前
欧拉路径算法
开发语言·数据结构·c++·算法·图论
ab1515171 天前
3.23完成进阶45、84,二刷基础132、129
算法·深度优先·图论
jing-ya2 天前
day 60 图论part11
java·数据结构·算法·图论
Rhystt2 天前
代码随想录算法训练营第五十五天|图论理论基础、深搜理论基础、98. 所有可达路径、广搜理论基础
数据结构·c++·算法·深度优先·图论
ArturiaZ2 天前
【day60】
算法·深度优先·图论
Lisssaa2 天前
打卡第二十二天
c++·算法·图论
我是咸鱼不闲呀2 天前
力扣Hot100系列22(Java)——[图论]总结(岛屿数量,腐烂的橘子,课程表,实现Trie(前缀树))
java·leetcode·图论
jing-ya2 天前
day 59 图论part10
java·开发语言·数据结构·算法·图论
不染尘.2 天前
最短路径之Bellman-Ford算法
开发语言·数据结构·c++·算法·图论
C蔡博士3 天前
最小生成树(MST)详解:定义、算法与核心性质
算法·贪心算法·图论·时间复杂度