图论 | 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()  
相关推荐
yyy(十一月限定版)9 分钟前
图论——最短路Dijkstra算法
算法·图论
-海绵东东-33 分钟前
图论——代码篇
算法·深度优先·图论
十八岁讨厌编程1 小时前
【算法训练营 · 二刷总结篇】贪心算法、图论部分
算法·贪心算法·图论
WW_千谷山4_sch2 小时前
MYOJ_7788:(洛谷P3387)【模板】缩点(有关强连通分量)
c++·算法·深度优先·动态规划·图论·拓扑学
yyjtx21 小时前
DHU上机打卡D27
c++·算法·图论
漂流瓶jz21 小时前
UVA-12569 树上的机器人规划(简单版) 题解答案代码 算法竞赛入门经典第二版
算法·图论·dfs·bfs·uva·算法竞赛入门经典第二版·11214
小冻梨6661 天前
ABC445 C - Sugoroku Destination题解
c++·算法·深度优先·图论·
重生之后端学习2 天前
46. 全排列
数据结构·算法·职场和发展·深度优先·图论
漂流瓶jz4 天前
UVA-1604 立体八数码问题 题解答案代码 算法竞赛入门经典第二版
算法·ida·深度优先·图论·dfs·bfs·迭代加深搜索
重生之后端学习5 天前
124. 二叉树中的最大路径和
java·数据结构·算法·职场和发展·深度优先·图论