C ++中Bipartite图的最大边数
问题陈述
给定一个整数N,它表示顶点的数量。任务是在N个顶点的二部图中找到最大可能的边数。
二部图
二分图是一个具有2组顶点的图。
该集合使得同一集合中的顶点之间永不共享边。
示例
如果N=10,则总共有25条边-
两个集合都将包含5个顶点,并且第一集合的每个顶点都将具有第二集合的每个其他顶点的边
因此,总边将为5*5=25
算法
当给定集合的每个顶点都具有另一集合的每个其他顶点的边缘时,边缘的数量将最大,即edges=m*n其中m和n是两个集合中的边缘数量
为了最大化边的数量,m必须等于或尽可能接近n
因此,可以使用以下公式计算最大边缘数:
(n*n)/4
示例
#include <bits/stdc++.h>
using namespace std;
int getMaxEdges(int n) {
return floor((n * n) / 4);
}
int main() {
int n = 7;
cout << "Maximum edges = " << getMaxEdges(n) << endl;
return 0;
}输出结果
当您编译并执行上述程序时。它产生以下输出-
Maximum edges = 12
热门推荐
10 对患者生日祝福语简短
11 结婚祝福语简短装备
12 周岁祝福语学生文案简短
13 订婚领证祝福语简短精辟
14 导师获奖祝福语大全简短
15 新婚购房祝福语简短精辟
16 牛年祝福语简短的爱人
17 送芒果的祝福语简短
18 送给学长毕业祝福语简短