C++ 中通过连接非互质节点形成的图的最大连通分量大小2025年5月14日 | 阅读 6 分钟 在本文中,我们将讨论如何找到通过 C++ 连接非互质节点所形成的图中最大连通分量的问题。图的节点通过边连接在一起。图的元素是构成图节点的子集值。一个图 G由一组a[]值组成。这些值来自构成图节点的组件集。互质数是除 1 以外没有其他最大公因数 (GCF) 的数。因此,它们在任何其他因数中都不常见。这里,使用了两种不同的技术。 现在,在一个由 N 个节点组成的图中,我们确定与所有节点关联的值 A。需要通过使用非互质受限节点之间的连接来计算图的最大连通分量。如果两个节点 U 和 V 是非互质的,则它们之间存在一条边。这意味着如果 A[U] 和 A[V] 的最大公因数大于 1。 示例 输入 {12,4,5,45,12,5,11,49} 输出 6 方法 1:朴素方法我们可以从所有节点对的集合开始,然后验证它们是否互质。如果它们都不是互质数,我们将决定如何处理它们。接下来,我们将通过深度优先搜索来查找最大连通分量的大小。 以下代码描述了实现。 示例输出 7 说明
方法 2:高效方法如果两个数字有共同的除数,那么它们就是非互质的。因此,最短路径将根据节点值的质因数分解来构建。 质因数分解可以通过应用埃拉托斯特尼筛法正确完成。相邻节点将使用不相交集数据结构(秩增加和路径压缩)进行分组。 数据的存储遵循以下原则。
我们将每个节点值分解为质数,并将这些质数存储在集合 S中。访问 S 的每个元素。如果我们第一次看到其中一个质数作为某个数字的因数(id[p] 为零),则通过当前索引指示该质数。如果 id[p] 已被标记,则简单地将节点与id[p]的节点合并。以下示例是一种高效的方法。 示例输出 7 说明
下一主题C++ 中围绕元素的三向分区 |
多米诺骨牌和三联骨牌铺砖问题是一个迷人且经典的组合数学和计算机科学问题。它涉及确定使用多米诺骨牌和三联骨牌完全覆盖 2×n 板而不发生重叠或间隙的方法数量。这个问题不仅提供了见解……
阅读 15 分钟
在本文中,我们将讨论带有语法、返回值和示例。dlsym() 函数是什么?dlsym() 函数通过 dlopen() 调用获取由对象提供的符号地址。name 参数代表字符......
阅读 3 分钟
引言图论是研究图的特征的分子数学之一,图是包含顶点或节点并由边或链接连接的数学结构。这样的图可以反映社会、计算机或任何其他类型的网络、生物结构,甚至……
11 分钟阅读
引言 关联矩阵是图论中用于表示图中顶点和边之间关系的基本数据结构。在图中,顶点由行表示,边由关联矩阵中的列表示。矩阵的每个元素...
7 分钟阅读
在本文中,我们将讨论其特性、方法和示例。什么是?希尔伯特数是数论数学领域中的一个正整数,其公式为 Hn = 4n+1,其中 n 是非负整数(n = 0,...
阅读 4 分钟
揭示凸包算法的优雅:全面探索 凸包算法是计算几何领域的支柱,为解决一个基本问题提供了高效的解决方案:找到包含平面上给定点集的最小凸多边形。这个问题...
18 分钟阅读
简介 C++ 中的 std::strided_slice 函数是一个概念,它指向在容器(例如数组或向量)中处理和操作特定元素时频繁使用的操作。步幅表示选择的元素之间的间隔有多远...
阅读 8 分钟
然而,在竞争性编程和算法设计的领域中,油漆围栏算法成为一个有趣且可行的难题。具体问题可以定义为计算用固定数量的柱子粉刷围栏的方法的数量...。
阅读 10 分钟
在理解 C++ 中虚函数和纯虚函数之间的区别之前,我们应该了解 C++ 中的虚函数和纯虚函数。什么是虚函数?虚函数是在基类中声明的成员函数,可以在派生类中重新定义...
5 分钟阅读
C++ 中的 `std::atomic_flag_test_and_set` 和 `std::atomic_flag_test_and_set_explicit` 函数是 `
阅读 4 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India