图论 | 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()  
相关推荐
AKDreamer_HeXY6 小时前
AtCoder Beginner Contest 434 C-E 题解
c++·算法·前缀和·图论·差分·atcoder
小李小李快乐不已6 小时前
图论理论基础(2)
java·开发语言·c++·算法·图论
qq_433554546 小时前
C++ 最长单调子序列
c++·算法·图论
初夏睡觉19 小时前
全排列题解
算法·深度优先·图论
Juan_20121 天前
P2865 [USACO06NOV] Roadblocks G 题解
c++·算法·图论·题解
ZhiqianXia1 天前
图论中常见不变量与性质全集(带严格数学公式)
图论
STY_fish_20122 天前
P11855 [CSP-J2022 山东] 部署
算法·图论·差分
啊董dong2 天前
noi-11月30日当堂练习
算法·深度优先·图论
五花就是菜2 天前
P12906 [NERC 2020] Guide 题解
算法·深度优先·图论
kingmax542120082 天前
图论核心算法(C++):包括存储结构、核心思路、速记口诀以及学习方法, 一站式上机考试学习【附PKU百练,相关练习题单】
c++·算法·图论·信奥赛·上机考试·百练·pku