图论 | 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()  
相关推荐
做怪小疯子9 小时前
LeetCode 热题 100——图论——岛屿数量&腐烂的橘子&课程表
算法·leetcode·图论
_OP_CHEN10 小时前
【算法基础篇】(三十四)图论基础深度解析:从概念到代码,玩转图的存储与遍历
算法·蓝桥杯·图论·dfs·bfs·算法竞赛·acm/icpc
@我漫长的孤独流浪1 天前
程序综合实践第十二周-二叉树
算法·深度优先·图论
我不会写代码njdjnssj1 天前
图论问题-最短路径
数据结构·算法·图论
qq_433554542 天前
C++数位DP
c++·算法·图论
烛衔溟2 天前
C语言图论:最短路径算法
c语言·算法·图论·dijkstra·bellman-ford·最短路径
烛衔溟2 天前
C语言图论:最小生成树算法
c语言·算法·图论·最小生成树·kruskal·prim
闻缺陷则喜何志丹4 天前
【图论 组合数学】P10912 [蓝桥杯 2024 国 B] 数星星|普及+
c++·数学·蓝桥杯·图论
2301_764441334 天前
使用python构建的决策逻辑的图论
开发语言·python·图论
leoufung7 天前
组合问题:为什么用start避免重复
算法·深度优先·图论