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

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()


http://www.kler.cn/a/591252.html

相关文章:

  • Java 大视界 -- Java 大数据在智能家居设备联动与场景自动化中的应用(140)
  • 【VS小知识】VS如何保存UTF8
  • python-列表的操作以及切片
  • Groove 清除环境变量,以防应用程序因为环境变量设置了错误的 Qt 插件路径而启动失败
  • OpenHarmony子系统开发 - 电话服务
  • 整体二分算法讲解及例题
  • 自然语言处理|Top-K 采样如何解锁文本生成的多样性?
  • php开发转go的学习计划及课程资料信息
  • 速通大厂测开
  • 爱普生 SG-8200CG可编程晶振在智能手表的应用
  • 从零构建大语言模型全栈开发指南:第一部分:数学与理论基础-1.1.1语言模型演进:从N-gram到Transformer
  • 【从零开始学习计算机科学】软件测试(六)软件开发中的软件测试过程 与 验收测试
  • 本地知识库RAG总结
  • 1.排序算法(学习自用)
  • 每日一题--计算机网络
  • deepseek连续对话与API调用机制
  • 【概念】Node.js,Express.js MongoDB Mongoose Express-Validator Async Handler
  • Tomcat虚拟主机配置详解:Centos环境下多域名部署(详细教程!)
  • Hunyuan3D,腾讯推出的3D资产系统
  • 华为IPD六个阶段细分:研发效率提升的6个关键步骤