QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 2048 MB Total points: 100

#14328. Cactus Connectivity

統計

你对图及其性质很感兴趣。在本题中,我们假设所有图均为简单无向图,即任意一对顶点之间最多只有一条边,且每条边连接两个不同的顶点。

图的简单环是指一个由三个或更多不同顶点组成的序列 $(v_1, v_2, \dots, v_c)$,使得对于每个 $1 \le i < c$ 都存在连接顶点 $v_i$ 和 $v_{i+1}$ 的边,且存在连接顶点 $v_1$ 和 $v_c$ 的边。对于简单环 $(v_1, v_2, \dots, v_c)$,其边集定义为 $\{(v_1, v_2), (v_2, v_3), \dots, (v_{c-1}, v_c), (v_c, v_1)\}$,其中 $(v_i, v_j)$ 表示连接顶点 $v_i$ 和 $v_j$ 的边。如果两个简单环拥有相同的边集,则它们是同一个简单环。

如果一个图中任意两个不同的简单环最多只有一个公共顶点,则该图被称为仙人掌图(cactus)。例如,图 C.1 展示了三个图。图 $X$ 是一个仙人掌图,因为两个简单环 $(1, 2, 3)$ 和 $(3, 4, 5)$ 仅以顶点 3 作为公共顶点。注意,顶点序列 $(1, 2, 3, 4, 5, 3)$ 不构成简单环,因为顶点 3 出现了两次。此外,简单环 $(2, 3, 1)$ 与简单环 $(1, 2, 3)$ 是同一个简单环。同时,图 $Y$ 不是仙人掌图,因为两个简单环 $(1, 2, 4)$ 和 $(2, 3, 4)$ 以顶点 2 和 4 作为公共顶点。图 $Z$ 是一个仙人掌图,因为它只有一个简单环。

图 C.1:图 $X$ 和 $Z$ 是仙人掌图。图 $Y$ 不是仙人掌图。

如果图中任意一对顶点之间都存在路径,则该图是连通的。特别地,只有一个顶点的图是连通的。

对于任何正整数 $k$,如果一个图在移除任意少于 $k$ 条边后仍保持连通,则该图是 $k$-边连通的。特别地,所有连通图都是 1-边连通的。例如,图 C.1 中的图 $Y$ 是 1-边连通和 2-边连通的,但不是 3-边连通的,因为移除与顶点 1 相连的两条边后,图不再连通。

如果图 $H$ 可以通过在图 $G$ 中添加零个或多个顶点和边得到,且不移除 $G$ 中的任何顶点和边,则称 $H$ 是 $G$ 的超图。注意,如果两个图拥有相同的顶点集和边集,则它们是同一个图。例如,在上面的图 C.1 中,图 $X$ 是图 $Z$ 的超图,而图 $Y$ 不是图 $Z$ 的超图,因为它缺少连接顶点 1 和 3 的边。

图 $G$ 的连通度值是最小的正整数 $k$,使得对于任何作为 $G$ 的超图的 $k$-边连通图 $H$,从 $H$ 中移除 $G$ 的所有边后,$H$ 依然保持连通。例如,在上面的图 C.1 中,图 $X$ 是图 $Z$ 的一个 2-边连通超图,从 $X$ 中移除 $Z$ 的所有边后,顶点 1 和 2 与其余部分断开连接,如图 C.2 所示。因此,$Z$ 的连通度值大于 2。可以证明,$Z$ 的连通度值为 3。

给定一个具有 $n$ 个顶点和 $m$ 条边的仙人掌图,顶点编号为 1 到 $n$,边编号为 1 到 $m$。第 $i$ 条边连接顶点 $u_i$ 和 $v_i$。你需要计算该仙人掌图的连通度值。

输入格式

输入的第一行包含两个整数 $n$ 和 $m$ ($1 \le n \le 100\,000$; $0 \le m \le 200\,000$)。接下来的 $m$ 行中,第 $i$ 行包含两个整数 $u_i$ 和 $v_i$ ($1 \le u_i < v_i \le n$)。输入表示一个任意一对顶点间最多只有一条边的仙人掌图。

输出格式

输出给定图的连通度值。

图 C.2:从图 $X$ 中移除图 $Z$ 的边

样例

样例输入 1

4 3
1 2
2 3
1 3

样例输出 1

3

说明 1

这对应于题目描述中的图 $Z$。

样例输入 2

3 0

样例输出 2

1

说明 2

任何 1-边连通超图都是连通图。由于给定图没有边,从连通图中移除给定图的所有边后,图依然保持连通。

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
#681EditorialOpenNew Editorial for Problem #14328KiharaTouma2026-01-09 14:36:41View

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.