图论 | 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()  
相关推荐
xier_ran7 小时前
邻接矩阵的 k 次幂意味着什么?从图论到路径计数的直观解释
算法·图论
AICodeThunder2 天前
【S组篇】C++知识点总结(1):并查集基础
c语言·数据结构·c++·算法·图论
极客数模3 天前
2025年MathorCup 大数据竞赛明日开赛,注意事项!论文提交规范、模板、承诺书正确使用!2025年第六届MathorCup数学应用挑战赛——大数据竞赛
大数据·python·算法·matlab·图论·比赛推荐
大数据张老师4 天前
【无标题】
算法·图论
许小禾上学记4 天前
学习笔记 | 图论基础
笔记·学习·图论
小李小李快乐不已4 天前
图论理论基础(1)
数据结构·算法·leetcode·深度优先·图论·广度优先·宽度优先
大数据张老师5 天前
数据结构——广度优先搜索
数据结构·图论·宽度优先
YSRM5 天前
Leetcode+Java+图论+最小生成树&拓扑排序
java·leetcode·图论
YSRM5 天前
Leetcode+Java+图论+并查集
算法·leetcode·图论
YSRM6 天前
Leetcode+Java+图论II
java·leetcode·图论