当前位置: 首页 > 知识库问答 >
问题:

找出图形中的最大边数

田仲卿
2023-03-14

无向图有n个顶点和0条边。我们能画出的最大边数是多少,这样图形就保持断开连接。

我已经给出了一个解决方案,我们可以排除一个顶点,并且可以找到无向图的n-1个顶点之间的最大边数,这样图仍然保持不连通。

对于n个顶点为n(n-1)/2,对于n-1个顶点为(n-1)(n-2)/2。有更好的解决办法吗?

共有3个答案

慕永年
2023-03-14

如果图可以有多边,则n的答案是无穷大

如果这些都不成立,你的解决方案是正确的。

长孙文栋
2023-03-14

你的解决方案应该是最好的解决方案。

因为任何新添加的边都必须在一端有第n个顶点。

段干帅
2023-03-14

你可以用分析来解决这个问题。把你的想法推广开来。你把n个顶点分成两组,大小为xn-x。现在边的数量是x的函数,用

  f(x)= x(x-1)/2 + (n-x)(n-x-1)/2
  f(x) = 1/2(2x^2 - 2nx +n^2 - n)

使该函数最大化的值是您想要的分区大小。如果你进行计算,你会发现它从x=0减少到x=n/2,然后增加到x=n。由于x=0或x=n意味着收集了图形,因此取下一个最大值,即x=1。所以你的直觉是最佳的。

 类似资料:
  • 我有一个对象。该对象有一个功能,即多边形对象,它本身由多个多边形对象组成。 我想子集空间多边形对象,以便多边形对象只有一个多边形对象,即面积最大的多边形。 我已经尝试了许多不同的方法,但都不知道如何在子多边形层次上设置子集。 下面是一个例子: 在此示例中,SpP有一个多边形对象。多边形对象的第一个子多边形具有面积5.5,第二个子多边形具有区域1.5。我希望将SpatialPolygons对象子集化

  • 这道题是 LeetCode 84 题。 给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1。求在该柱状图中,能够勾勒出来的矩形的最大面积。 解法一:暴力(遍历不同的高度) 遍历每个高度,计算该高度下的最大的连续矩形面积。外层循环遍历每个高度,内层循环从头到尾遍历整个数组即可。使用一个 HashMap 记录已经计算过的高度,不重复计算。 这种方法相当于使用一根从下到

  • 这个问题与LeetCode在网络中的关键连接非常相似。给定一个无向图,我们想要找到所有的桥。无向连通图中的一条边是一个桥,如果去掉它就会断开图的连接。 变体 而不是找到所有的桥,我想最大限度的边的数量,以删除,使图保持连接。 实施例2

  • 注意,有一个多边形ABCIHGJKLMLKA,它包括节点KLM,但多边形CDEG不包括F。 我读过关于这个问题的解决方案,但没有像我这样的leaf要求。在以前的解决方案中存在的一些公理是,每条边只使用两次,但是死端边总共需要遍历四次。也就是说,存在一个包含所有外部节点ABCDEFGJKLMLKA的多边形,但是它会被丢弃,因为它将朝外。 下面介绍了一种类似问题的解决方案,即sans the leaf

  • 我有一个数据库,其中一个表(ca_licenses)是商业地址,另一个表是市议会区多边形的公共模式(ca_la_la_council)。 我运行此查询是为了将议会表中的地区号码放在企业地址表中: 我的问题是我总是得不到任何结果。两个几何列都是几何类型,SRID是4326。 示例ca_licenses数据:https://raw . githubusercontent . com/pour safe

  • 我目前正在编写一个具有LineChart的程序,在这个问题的帮助下,我有条件地对其背景进行了着色。当我调整我的JavaFX程序所在的窗口大小时,颜色会扭曲整个地方。 如你所见,颜色从来没有被“清理”过。下面是我绘制多边形和linechart的代码: (代码被清除了一点,我排除了一些我认为不相关的内容)