图论的基础知识:
图的种类: 有向图(边有方向) 、 无向图(边无方向)、加权有向图(边有方向和权值)
度: 无向图中几条边连接该节点,该节点就有几度;有向图中每个节点有入度和出度
连通性:在无向图中,任何两个节点都是可以到达的,称之为连通图,否则称之为非连通图
在有向图中,热河两个节点是可以相互到达的,称之为强连通图
联通分量:在无向图中的极大连通子图称之为该图的一个连通分量
强连通分量:有向图中极大强连通子图称之为强连通分量
图的构造:一般使用邻接表、邻接矩阵和朴素存储
图的遍历方式:深度优先搜索(dfs)、广度优先搜索(bfs)
卡码网 98 所有可达路径
import sys
from collections import defaultdictpath = []
result = []def main():n, m = map(int, input().split())graph = defaultdict(list)for _ in range(m):x, t = map(int, input().split())graph[x].append(t)path.append(1)dfs(graph, 1, n)if not result:print(-1)for pa in result:print(' '.join(map(str, pa)))def dfs(graph, x, n):if x == n:result.append(path.copy())returnfor i in graph[x]:path.append(i)dfs(graph, i, n)path.pop()if __name__ == '__main__':main()