#P12893. [蓝桥杯 2025 国 Java B] 隔离网络

    ID: 12669 Type: RemoteJudge 3000ms 512MiB Tried: 0 Accepted: 0 Difficulty: 4 Uploaded By: Tags>并查集2025蓝桥杯国赛

[蓝桥杯 2025 国 Java B] 隔离网络

题目描述

小蓝负责一家科技公司的数据中心安全。该数据中心包含 NN 台服务器,编号为 11NN,以及 MM 条数据链路,编号为 11MM。每条数据链路都连接着两台服务器。

最近,数据中心遭到了网络攻击,病毒正在通过这些链路快速蔓延。为了阻止病毒扩散,小蓝需要采取紧急措施,对网络进行隔离。他计划进行一系列操作,每次操作都包含以下两个步骤:

  1. 确定当前网络中所有连通的服务器集群——即通过链路直接或间接相连的服务器集合。
  2. 对于每个连通的服务器集群,禁用该集群内编号最小的那条数据链路,以切断病毒传播的途径。

小蓝会重复执行上述操作,直到数据中心的所有数据链路都被禁用、整个数据中心的网络都被隔离。对此,请你帮助小蓝计算出,他总共需要进行多少次操作?

输入格式

输入数据第一行包含两个正整数 NNMM,分别表示服务器的数量和数据链路的数量。

接下来 MM 行,每行包含两个正整数 uiu_iviv_i,表示第 ii 条数据链路连接的服务器编号。数据链路的编号按照输入顺序从上到下依次为 11MM

输出格式

输出一个整数,表示小蓝需要进行的操作次数。

5 3
1 2
2 3
4 5
2

提示

【样例说明】

第一次操作:

  1. 识别两个连通的服务器集群:

    • 集群 1:服务器 (1,2,3)(1,2,3)
    • 集群 2:服务器 (4,5)(4,5)
  2. 对于集群 1,禁用编号最小的链路 121-2;对于集群 2,禁用编号最小的链路 454-5

第一次操作结束后,仅剩余一个连通的服务器集群:服务器 (2,3)(2,3)

第二次操作:

  1. 识别剩余的连通服务器集群: 服务器 (2,3)(2,3)
  2. 禁用编号最小的链路 232-3

第二次操作结束后,网络中不再有连通的服务器集群,隔离完成。总共需要 2 次操作。

【评测用例规模与约定】

对于 40%40\% 的评测用例,2N1032 \leq N \leq 10^3,$1 \leq M \leq \min(\frac{N \times (N-1)}{2}, 2 \times 10^3)$。

对于 100%100\% 的评测用例,2N1052 \leq N \leq 10^5,$1 \leq M \leq \min(\frac{N \times (N-1)}{2}, 2 \times 10^5)$。