当前位置: 首页 > news >正文

Leetcode 刷题笔记1 图论part01

图论的基础知识:

图的种类: 有向图(边有方向) 、 无向图(边无方向)、加权有向图(边有方向和权值)

度: 无向图中几条边连接该节点,该节点就有几度;有向图中每个节点有入度和出度

连通性:在无向图中,任何两个节点都是可以到达的,称之为连通图,否则称之为非连通图

在有向图中,热河两个节点是可以相互到达的,称之为强连通图

联通分量:在无向图中的极大连通子图称之为该图的一个连通分量

强连通分量:有向图中极大强连通子图称之为强连通分量

图的构造:一般使用邻接表、邻接矩阵和朴素存储

图的遍历方式:深度优先搜索(dfs)、广度优先搜索(bfs)

卡码网 98 所有可达路径

import sys
from collections import defaultdict

path = []
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())
        return
    for i in graph[x]:
        path.append(i)
        dfs(graph, i, n)
        path.pop()

if __name__ == '__main__':
    main()

相关文章:

  • 【python小游戏】俄罗斯方块
  • 主流NoSQL数据库类型及选型分析
  • Redis客户端Jedis、Lettuce 和 Redisson优缺点总结
  • 【Linux———生产消费模型】
  • ubuntu20.04下的opencv4.8.0安装教程(其他版本通用)
  • git clone, 算是解决可以访问github但无法clone的问题
  • 动态规划合集——动态规划基本原理
  • Java JMX 未授权访问漏洞分析与修复指南
  • 云计算迁移革命:企业如何摆脱“单一云”锁定,构建自主云未来?
  • GPU 上的 Reduction(归约)和 Scan(前缀和)优化:LLVM、GPU 指令集与架构差异
  • 在线教育网站项目第四步:deepseek骗我, WSL2不能创建两个独立的Ubuntu,但我们能实现实例互访及外部访问
  • 全局上下文网络GCNet:创新架构提升视觉识别性能
  • mac calDAV 日历交互
  • 抖音视频数据获取实战:从API调用到热门内容挖掘
  • Android Studio控制台中文乱码解决方案
  • 利用knn算法实现手写数字分类
  • 检索增强生成(2)本地PDF 本地嵌入模型
  • 顺序表:数据结构的“上古神兽”
  • 程序化广告行业(30/89):利用“4W1H”模型优化广告投放策略
  • windows 10 系统配置Node
  • 甘肃临夏州政协委员马全成涉嫌诈骗罪,被撤销政协委员资格
  • 抗战回望18︱《广西学生军》:“广西的政治基础是青年”
  • 同路人才是真朋友——驻南苏丹使馆援助东赤道州人道主义物资交接仪式侧记
  • 遭反特朗普情绪拖累?澳大利亚联盟党大选落败、党魁痛失议席
  • 党旗下的青春|赵天益:少年确定志向,把最好的时光奉献给戏剧事业
  • 从“土”到“潮”,唢呐何以“圈粉”年轻人