最大团+极大团计数(HDOJ 1530+POJ 2989, Bron-Kerbosch )

本文介绍了极大团和最大团的概念,强调最大独立集等价于补图的最大团。详细阐述了Bron-Kerbosch算法,包括其在极大团计数和求解最大团问题的应用,并提供了POJ 2989问题的解决方案。算法复杂度较高,适用于处理中等规模的图论问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

极大团:无法从图中再加入一个顶点使得此顶点集的顶点两两相连的顶点集

因此单个顶点也可能是一个极大团

最大团:一个包含顶点数最多的极大团

最大独立集=补图的最大团

定理:最大独立集=补图的最大团,最大团=补图的最大独立集

Bron-kerbosch模板

说明

all-已取顶点集,some-未处理顶点集(初始状态是全部顶点),none-不取的顶点集,g-边,
S-极大团数量,ans-最大团结点数;
结点编号1~n,0用于辅助,表示被删除;
求最大团顶点数时只要some;要求记录路径时要all;
求极大团数量要some、none;要求记录路径时要all;

极大团计数

输入:some,g;
输出:S;
调用方法:dfs(0,0,n,0);
some的初始化:for(int I=0; I<n; ++I) some[0][I]=I+1;
复杂度爆炸,可处理一两百个点

POJ 2989 All friends

#include<iostream>
#include<algorithm>
#include<cstring>

using namespace std;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值