图论 | 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()  
相关推荐
txzrxz2 天前
二分图详解
数据结构·c++·算法·图论·深度优先搜索·二分图染色
ysa0510306 天前
【板子】拓扑排序
c++·算法·图论·板子
学究天人7 天前
数学公理体系大全:第七章 连续统假设与力迫法简介
人工智能·算法·机器学习·数学建模·动态规划·图论·抽象代数
Starmoon_dhw8 天前
题解:P16108 「o.OI R-1」基础博弈练习题
c++·算法·图论
Starmoon_dhw8 天前
题解:P17078 夏日甜点
c++·学习·算法·图论
学究天人8 天前
数学公理体系大全:第一章 命题逻辑:真值之舞
人工智能·算法·机器学习·数学建模·动态规划·图论·抽象代数
Keven_119 天前
算法札记:图的存储方式
算法·图论
ysa0510309 天前
【板子】欧拉序
c++·笔记·算法·深度优先·图论
学究天人9 天前
数学公理体系大全:第二章 一阶谓词演算:进入“所有”与“存在”
网络·算法·数学建模·动态规划·图论·抽象代数·拓扑学
学究天人9 天前
数学公理体系大全:第四章 ZFC公理的形式化与构造演算
线性代数·数学建模·矩阵·动态规划·图论·抽象代数·拓扑学