n个点的简单无向图没有长度为3的环,求其最大的边数

原题描述:在一个未来的空中都市中,有很多个小岛(城区)。现在要求在这些岛之间架一些桥梁(桥是架在两个岛中间的)。要求:首先,如果A与B中间有桥,B与C之间有桥,则A与C之间就不能再架桥了,即对于城市中的任意三个岛,不能在其中两两都架上桥。在这样的前提下,要求架的桥数最多,并计算其中的一个可行方案。

 

此题在网上可以搜索到答案,桥数最多时为二分图。但没有给出有力的证明。以下简要证明之。

 

引理:n个顶点的图G=(V,E),假设其顶点的最大度数为m,则边数最多为m*(n-m)

 

证明:

取出最大度数的顶点v0,由于v0的度数为m,则v0有m个邻接点,设为X={u1,u2,...,um},而且图G没有长度为3的环,则这m个邻接点互不连接。

将G中的顶点V分成两个部分,X和 V-X,考虑V-S中的所有顶点,任取一个点v1,由于v1的度数不大于m,则将v1的边全部移动到X上来,这个操作是可行的,因为X有m个顶点,而v1最多只有m条边,此时v1必定和v0不相邻,注意移动之后图G的边数和点数都没有改变。循环处理V-S的所有顶点,如此使用图G分成了两个部分X和X-S,即是一个二分图,二分图边数最多时为完全二分图,即边数最多为m*(n-m)

 

当m=floor(n/2)时,m*(n-m)最大,所以对于n个顶点的图G,n为偶数时边数最多为(n/2)*(n/2),n为奇数时边数最多为(n-1)/2* (n+1)/2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值