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

极大团:一个无法被更大的强连通分量包含的强连通分量因此单个顶点也可能是一个极大团最大团:一个包含顶点数最多的极大团定理:最大独立集=补图的最大团,最大团=补图的最大独立集Bron-kerbosch模板说明all-已取顶点集,some-未处理顶点集(初始状态是全部顶点),none-不取的顶点集,g-边,S-极大团数量,ans-最大团结点数;结点编号1~n,0用于辅助,表示被删除;求...
摘要由CSDN通过智能技术生成

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

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

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

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

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

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;
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值