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

学做美食饮品网站企业文化宣传册模板

学做美食饮品网站,企业文化宣传册模板,wordpress大前端增强版,做网站和做微信小程序题目描述 小蓝负责一家科技公司的数据中心安全。该数据中心包含 N N N 台服务器,编号为 1 1 1 到 N N N,以及 M M M 条数据链路,编号为 1 1 1 到 M M M。每条数据链路都连接着两台服务器。 最近,数据中心遭到了网络攻击&a…

题目描述

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

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

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

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

输入格式

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

接下来 M M M 行,每行包含两个正整数 u i u_i ui v i v_i vi,表示第 i i i 条数据链路连接的服务器编号。数据链路的编号按照输入顺序从上到下依次为 1 1 1 M M M

输出格式

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

输入输出样例 #1

输入 #1

5 3
1 2
2 3
4 5

输出 #1

2

说明/提示

【样例说明】

第一次操作:

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

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

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

第二次操作:

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

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

【评测用例规模与约定】

对于 40 % 40\% 40% 的评测用例, 2 ≤ N ≤ 1 0 3 2 \leq N \leq 10^3 2N103 1 ≤ M ≤ min ⁡ ( N × ( N − 1 ) 2 , 2 × 1 0 3 ) 1 \leq M \leq \min(\frac{N \times (N-1)}{2}, 2 \times 10^3) 1Mmin(2N×(N1),2×103)

对于 100 % 100\% 100% 的评测用例, 2 ≤ N ≤ 1 0 5 2 \leq N \leq 10^5 2N105 1 ≤ M ≤ min ⁡ ( N × ( N − 1 ) 2 , 2 × 1 0 5 ) 1 \leq M \leq \min(\frac{N \times (N-1)}{2}, 2 \times 10^5) 1Mmin(2N×(N1),2×105)

💻 代码实现(语言:Java)

import java.util.*;public class Main {static int[] parent, size, depth;static int find(int x) {if (parent[x] != x) parent[x] = find(parent[x]);return parent[x];}static void union(int x, int y) {int fx = find(x);int fy = find(y);if (fx == fy) {// 同一个集合内,增加冗余边计数depth[fx]++;} else {// 合并集合,同时更新深度if (size[fx] < size[fy]) {int tmp = fx; fx = fy; fy = tmp;}parent[fy] = fx;size[fx] += size[fy];depth[fx] = Math.max(depth[fx], depth[fy]) + 1;}}public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt(); // 服务器数量int m = sc.nextInt(); // 边数量int[] u = new int[m];int[] v = new int[m];for (int i = 0; i < m; i++) {u[i] = sc.nextInt();v[i] = sc.nextInt();}parent = new int[n + 1];size = new int[n + 1];depth = new int[n + 1];for (int i = 1; i <= n; i++) {parent[i] = i;size[i] = 1;}int maxDepth = 0;// 从后往前插入边(逆向模拟)for (int i = m - 1; i >= 0; i--) {union(u[i], v[i]);int root = find(u[i]);maxDepth = Math.max(maxDepth, depth[root]);}System.out.println(maxDepth);}
}

每天带你写一道程序设计题,讲思路,写代码,练算法。
(编程题来源于网络,代码与讲解为本人原创。)

题目来源(方便大家练习)

https://www.luogu.com.cn/problem/P12893
http://www.dtcms.com/a/498028.html

相关文章:

  • 制作网站的公司叫什么猫咪社区免费资源在线观看
  • 广州移动端网站建设二级建造师报考条件官网
  • 郑州网站建设鹏之信海口网站建设小强
  • 四川建设人才官方网站dz可以做门户网站吗
  • 简述企业网站维护的重要性鹤壁市住房和城乡建设局网站
  • 大数据技术建设网站汽车4s销售网站模板
  • 个人博客html代码长沙seo优化方案
  • 安徽省住建厅网站官网广东网站开发项目
  • 深圳led网站建设休闲会所网站建设
  • 安徽省建设工程网站平面设计图片大全
  • .课程网站建设与应用做徽标哪个网站素材多
  • 做手机网站公司福州网站模板建站
  • 湛江企业自助建站中国菲律宾足球时间
  • 微网站解决方案做宣传图片的软件
  • 松岗营销型网站建设运营和营销是一回事吗
  • 外国设计网站职业教育网站平台建设
  • 网站开发项目介绍ppt如何做网站可以吗
  • 做网站费用分摊入什么科目wordpress 代码调用
  • seo网站优化快速排名软件河南宏业建设管理有限公司网站
  • 邯郸做网站推广的公司网站在浏览器的图标怎么做
  • 做网站搭建的公司中国建筑设计研究院
  • 个人信息网站建设的心得体会网络架构设计方案
  • 做五金上哪个网站推广wordpress如何添加商桥
  • 淄博网站设计公司wordpress做定制T恤的网站
  • 网站商城模板网站建设费计入管理费用
  • 如何运用网站做推广国家企业信用信息查询公示系统广东
  • 做语文课文网站的好处苏州网站建设点一点
  • 佳木斯做网站番禺网站建设优化
  • 有域名和虚拟服务器后怎么做网站湛江论坛网
  • 营销型电子商务网站特点共享ip网站 排名影响