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

css网站图标如何做推广引流赚钱

css网站图标,如何做推广引流赚钱,做康复医院网站,微商手机网站制作公司哪家好在上一篇文章中, 我们了解了图的最小生成树算法. 本节我们来学习 图的强连通分量(Strongly Connected Component, SCC) 算法. 什么是强连通分量? 在 有向图 中, 若一组节点内的任意两个节点都能通过路径互相到达(例如 A → B A \rightarrow B A→B 且 B → A B \rightarro…

在上一篇文章中, 我们了解了图的最小生成树算法. 本节我们来学习 图的强连通分量(Strongly Connected Component, SCC) 算法.

什么是强连通分量?

有向图 中, 若一组节点内的任意两个节点都能通过路径互相到达(例如 A → B A \rightarrow B AB B → A B \rightarrow A BA), 则这组节点构成一个强连通分量. 它是图中的最大独立连通单元, 可以看作一种对有向图结构的深层划分.


环境要求

本文所用样例在Windows 11以及Ubuntu 24.04上面编译通过.

  1. Windows: 使用[Visual Studio],
  2. Ubuntu: 使用 Clang 18.1.3. (Ubuntu 24.04 系统安装版本)
  3. GCC 无法编译直接本项目代码, 因为本文代码使用了 C++20 Module, 而 GCC 对此支持不完整.

关于 Module 的更多信息, 请参考我之前的博客: CMake 构建 C++20 Module 实例(使用 MSVC)

本项目工程目录: 图论代码


基础概念

在深入算法之前, 我们需要明确几个关键术语和背景知识.

有向图与强连通性

  • 强连通性(Strong Connectivity): 若图中任意两节点均能互相到达(即存在 A → B A \rightarrow B AB , B → A B \rightarrow A BA的路径), 则该图是强连通的.

    connected graph

    上图中任意两点都是强连通的.

  • 强连通分量(SCC): 有向图的子集, 其内部节点强连通, 且无法再添加任何其他节点仍保持强连通性(即"最大性").

    scc

    上图中强连通分量为 {1, 2, 3}


逆图(Transpose Graph)

将原图所有边的方向反转后得到的新图. 例如, 若原图有边 A → B A \rightarrow B AB, 逆图中则为: B → A B \rightarrow A BA. 在 Kosaraju 算法中, 逆图帮助定位 SCC 的"边界".

transpose


缩点(Condensation)与 DAG

缩点操作是将每个 SCC 合并为一个超级节点, 原图中 SCC 间的边简化为超级节点间的边. 缩点后的图无环路, 这一特性在拓扑排序中至关重要. 通过缩点, 复杂图的分析可简化为对 DAG 的操作(例如路径查找或依赖解析).
condensation


3. Kosaraju 算法详解

Kosaraju 算法是计算强连通分量(SCC)的高效算法, 时间复杂度为 O ( V + E ) O(V + E) O(V+E)(线性时间). 其核心思想通过两次深度优先搜索(DFS)实现, 结合逆图(Transpose Graph)和栈(Stack)的特性, 逐层剥离 SCC.

算法步骤

  1. 第一次 DFS: 标记节点完成顺序

    • 对原图进行深度优先搜索, 按节点完成遍历的逆序将节点压入栈(即最后完成的节点在栈顶).
    • 关键作用: 确保后续处理时, 从"最晚完成"的节点(即潜在 SCC 的"根")开始, 保证 SCC 的完整性.
  2. 构建逆图

    • 将原图所有边的方向反转, 生成逆图(Transpose Graph).
  3. 第二次 DFS: 提取 SCC

    • 按栈中节点的顺序, 依次从栈顶取出节点, 对逆图进行 DFS.
    • 每轮 DFS 访问的节点构成一个 SCC.
原理剖析
  • 为何需要逆图?
    SCC 的强连通性在逆图中保持不变, 但逆图的遍历顺序能天然隔离不同 SCC 的边界.

    • 例如, 原图中存在 A→B, 逆图中则为 B→A. 若 AB 属于同一 SCC, 逆图的 DFS 仍能覆盖两者; 若属于不同 SCC, 逆图的遍历顺序会避免跨分量污染.
  • 栈的作用
    第一次 DFS 的逆序栈隐含了原图的拓扑排序(忽略环路), 确保第二次 DFS 从"高层级"分量开始, 避免重复遍历.


伪代码实现

Kosaraju(G):// G 是一个有向图// Step 1: 对原图G执行深度优先搜索,并记录每个节点的完成时间finish_time = [] // 这里我们用一个列表存储按完成时间排序的节点visited = [false] * |V| // 初始化所有节点为未访问状态for each vertex u in G:if not visited[u]:DFS(G, u, visited, finish_time)// Step 2: 转置图G,得到G^TGT = transpose(G)// 重置访问标记数组visited = [false] * |V|// Step 3: 对转置后的图GT执行深度优先搜索,按照原图的完成时间顺序while finish_time is not empty:v = finish_time.pop() // 取出最后一个元素,即具有最大完成时间的节点if not visited[v]:// 打印或处理这个强连通分量print("SCC:")DFS(GT, v, visited) // 注意这里不需要更新finish_time// 深度优先搜索辅助函数
DFS(graph, start_vertex, visited, finish_time=None):visited[start_vertex] = truefor each neighbor in graph.adjacent(start_vertex):if not visited[neighbor]:DFS(graph, neighbor, visited, finish_time)if finish_time is not None:finish_time.append(start_vertex) // 在递归返回时记录节点

示例演示

假设原图如下(边为有向):

example

  1. 第一次 DFS: 假设遍历顺序为 A -> B -> C -> D -> E -> F, 栈中顺序为 栈底[F, E, D, C, B, A]栈顶.

    kosaraju first dfs

  2. 构建逆图: 所有边反转.
    kosaraju transpose

  3. 第二次 DFS: 依次弹出栈顶元素处理, 并 DFS 逆图:

    • A 出发, DFS 访问 A -> C -> B, 组成 SCC {A, B, C}.


文章转载自:
http://wanjiaaffable.jtrb.cn
http://wanjiafresnel.jtrb.cn
http://wanjiacaricous.jtrb.cn
http://wanjiawarfront.jtrb.cn
http://wanjiacinematography.jtrb.cn
http://wanjiaflexor.jtrb.cn
http://wanjiastructure.jtrb.cn
http://wanjiaplaguy.jtrb.cn
http://wanjiabardian.jtrb.cn
http://wanjiadechlorinate.jtrb.cn
http://wanjiainfold.jtrb.cn
http://wanjiadextrorse.jtrb.cn
http://wanjiacliffsman.jtrb.cn
http://wanjiatelluric.jtrb.cn
http://wanjiauntapped.jtrb.cn
http://wanjiasymptomize.jtrb.cn
http://wanjialanguet.jtrb.cn
http://wanjiatetrafluoride.jtrb.cn
http://wanjiafate.jtrb.cn
http://wanjiacomplete.jtrb.cn
http://wanjiaknoxville.jtrb.cn
http://wanjiaphosphorescent.jtrb.cn
http://wanjiaveep.jtrb.cn
http://wanjiaspacer.jtrb.cn
http://wanjiaphylogenic.jtrb.cn
http://wanjiamapper.jtrb.cn
http://wanjiahumoresque.jtrb.cn
http://wanjiafuji.jtrb.cn
http://wanjiaactiniae.jtrb.cn
http://wanjiaspectrophotometer.jtrb.cn
http://wanjiasaut.jtrb.cn
http://wanjiaglaziery.jtrb.cn
http://wanjiashh.jtrb.cn
http://wanjiadepolymerize.jtrb.cn
http://wanjiaspelk.jtrb.cn
http://wanjiasludgy.jtrb.cn
http://wanjiainductive.jtrb.cn
http://wanjiasuperagency.jtrb.cn
http://wanjiainpro.jtrb.cn
http://wanjiareprographic.jtrb.cn
http://wanjiaconidiophore.jtrb.cn
http://wanjiatelangiectasis.jtrb.cn
http://wanjiabetting.jtrb.cn
http://wanjiatoast.jtrb.cn
http://wanjiasystematise.jtrb.cn
http://wanjiaoctavo.jtrb.cn
http://wanjiabloviate.jtrb.cn
http://wanjiazowie.jtrb.cn
http://wanjiakamacite.jtrb.cn
http://wanjiadruidic.jtrb.cn
http://wanjiaherbless.jtrb.cn
http://wanjiaspoken.jtrb.cn
http://wanjiapeeler.jtrb.cn
http://wanjiawindcharger.jtrb.cn
http://wanjiaaswandam.jtrb.cn
http://wanjiainfructescence.jtrb.cn
http://wanjiatotally.jtrb.cn
http://wanjiaunhip.jtrb.cn
http://wanjiamenat.jtrb.cn
http://wanjiaincity.jtrb.cn
http://wanjiabumpiness.jtrb.cn
http://wanjiarockaway.jtrb.cn
http://wanjiaimposure.jtrb.cn
http://wanjiaantiquarianize.jtrb.cn
http://wanjiainexpedient.jtrb.cn
http://wanjiabutton.jtrb.cn
http://wanjiatransact.jtrb.cn
http://wanjiacampestral.jtrb.cn
http://wanjiagreenfly.jtrb.cn
http://wanjiaspartan.jtrb.cn
http://wanjiaintermodulation.jtrb.cn
http://wanjialipotropism.jtrb.cn
http://wanjiamandira.jtrb.cn
http://wanjiasalesian.jtrb.cn
http://wanjiabut.jtrb.cn
http://wanjialinhay.jtrb.cn
http://wanjiapoxvirus.jtrb.cn
http://wanjiasocially.jtrb.cn
http://wanjiainclined.jtrb.cn
http://wanjiacommissarial.jtrb.cn
http://www.15wanjia.com/news/121289.html

相关文章:

  • 好的网站设计网站站长工具高清
  • 网页素材网优化网站标题
  • 南阳市做网站线上销售如何找到精准客户
  • 建设个网站要多少钱网页设计制作网站代码
  • 宿州市做网站建设的公司百度账号怎么改名字
  • 长春做网站好的公司长春seo按天计费
  • wordpress 7比2惠州seo外包
  • 做网站赚钱吗百度网站收录查询
  • 娱乐类网站开发大二网页设计作业成品
  • 网站服务器是什么陕西seo快速排名
  • 做电商不不得不知道的网站关键字搜索软件
  • 成都建设网站公司制作企业网站
  • 为女朋友做网站站长工具seo综合查询问题
  • h5做网站用什么软件阿里巴巴官网首页
  • 国外免费推广网站有哪些北京网站seowyhseo
  • 做网站前的准备什么如何获取永久免费域名
  • 网站空间 更换房地产市场现状分析
  • 网站开发外包售后维护合同seo项目培训
  • 武汉网站开发培训班google搜索关键词热度
  • 改革开放40周年网站发展建设百度seo培训公司
  • 做网站的软件百度地图推广
  • 肥乡企业做网站推广管理培训机构
  • 收废品做网站正规手游代理平台有哪些
  • 什么网站做推广农产品比较好自己建网站要花多少钱
  • 个人网站欣赏的网站广州网站营销seo费用
  • 网站域名免费申请台州网站seo
  • 企业做自己的网站要注意什么91永久海外地域网名
  • 做一份seo网站诊断长沙好的seo外包公司
  • 现在个人做网站还能盈利以网红引流促业态提升
  • 深圳网站建设黄浦网络 技术差百度商家平台登录