我们都知道,树是一种特殊的图,为什么这么说呢?

I 图与树密不可分的关系

图:图由顶点(Vertex)​​ 和连接顶点的边(Edge)​​ 组成。其中顶点和边可以任意组合

树:在无向图的基础上,满足以下两点: A. 连通性​​:树中任意两个顶点之间都存在一条路径。

B. 无环性​​:树中不存在任何环(回路)

换句话说,​树就是一个没有回路的连通图​

II图与树的互相转换

经过114514秒的研究后,发现:

要使一个无向图变成树,所需删除的最小边数有一个固定的计算公式:

​最小删除边数k = m - (n - x)​​

其中: ·​m: 图中原始的边的总数。

·n: 图中的节点总数。

·​x: 图的连通块数量。连通块是指图中一个极大的连通子图。

这个公式的底层逻辑是:

1.目标边数​:我们知道,一棵有 n 个节点的树有 n-1 条边。但如果图本身由 x 个连通块组成,要将其连接成一棵树,就需要 x-1 条额外的边(称为“桥”)来连接这些连通块。因此,最终需要保留的总边数为 (n - x)。n-1(树的边数)减去 (x-1)(连接连通块所需的边)也等于 n - x。

2.删除多余边​:原始的边数 m 减去需要保留的边数 (n - x),得到的就是为了消除所有环而必须删除的最小边数。

甚是美妙啊!!!

III 工业制X(图的连通块数量)

又经过了114514秒的思考,我发现x是不能通过n, m得出的,因而在deepseek酱的帮助下此给出三种得出x的方式:

A 深度/广度优先搜索 (DFS/BFS)​

B 并查集 (Union-Find)​

C Warshall 算法

如何实现在此不提

2 条评论

  • @ 2025-9-13 21:46:41

    更新

    • @ 2025-9-13 21:46:27

      好东西

      • 1