讲解的博客:https://blog.csdn.net/SparkFucker/article/details/83051133

还没写完的代码:

#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
typedef long long ll;
//const int N = 100005;
#define maxn 300050
vector<int> g[maxn];
vector<int> res;
int clolr[maxn];
int pre[maxn];//记录前一个节点
bool flag;
int root; void Init(){memset(color,-1,sizeof(color));memset(pre,-1,sizeof(pre));res.clear();flag=true;for(int i=0;i<N;i++){g[i].clear();}
}void dfs(int v,int val){if(!flag)   return;color[v]=val;for(int i=0;i<g[v].size();i++){if(!flag)   return;pre[g[v][i]]=v;if(color[g[v][i]]==-1){   //二分图 dfs(g[v][i],val^1);}else{   //说明不是二分图 if(color[g[v][i]]==val){//说明奇环就出现在这里flag=false;root=g[v][i];return; }}}
}int main(){init();int n,m;}

最大团其实就是最大完全子图的点集,同理极大团也就是极大完全子图的点集,点集内所有的点两两之间都有边相连。

定义 (维基百科):

在图论领域的一个无向图中,满足两两之间有边连接的顶点的集合,被称为该无向图的团。

最大独立集其实就是补图的最大团,因为和最大团相反,最大独立集合内的点两两之间都没有边相连。

定义(维基百科):

一个独立集(也称为稳定集)是一个图中一些两两不相邻的顶点的集合。

最大团的个数 = 补图的最大独立数

最小覆盖数+最大独立数 = 顶点数。

在二分图中,最小覆盖数 等于 最大匹配数, 而最大独立数又等于 顶点数减去最小覆盖数

无向图的几个基本算法应用:https://blog.csdn.net/yafeichang/article/details/53888866

有向图的几个算法https://blog.csdn.net/yafeichang/article/details/53893120

https://blog.csdn.net/pi9nc/article/details/9632621

https://blog.csdn.net/qq_40859951/article/details/88540146

https://blog.csdn.net/westbrook1998/article/details/82933263   !!!

求解方法:

一.暴力法求最大团的点集---dfs

例题:hdu 1530

#include<bits/stdc++.h>
using namespace std;
const int masn=2e6+10;
int mp[55][55],n;
vector<int> best;
vector<int> a;
void dfs(int pos)//下标
{if(pos>=n+1){if(best.size()<=a.size())best=a;return;}//判断是否可以在团内 int flag=0;//表示可以 for(int i=0;i<a.size();i++){if(!mp[pos][a[i]])//注意:第二个方括号里面是a[i]{flag=1;//表示不可以 break;}}if(a.size()+(n-pos)>=best.size()){//剪枝操作  有可能a元素比best多就进行if(!flag){a.push_back(pos);dfs(pos+1);//尝试插入该点 a.pop_back();}dfs(pos+1);//尝试不插入该点 }
}
int main()
{while(~scanf("%d",&n)&&n){a.clear();best.clear();for(int i=1;i<=n;i++)for(int j=1;j<=n;j++){scanf("%d",&mp[i][j]);}dfs(1);cout<<best.size()<<endl;}
}

  https://blog.csdn.net/westbrook1998/article/details/82933263

https://blog.csdn.net/SparkFucker/article/details/83051133

https://www.cnblogs.com/yefeng1627/archive/2013/03/31/2991592.html

https://ac.nowcoder.com/acm/problem/19790

Bron-Kerbosch 算法

讲解的非常好:https://www.cnblogs.com/yefeng1627/archive/2013/03/31/2991592.html

转载于:https://www.cnblogs.com/Aiahtwo/p/11437031.html

无向图的最大团/最大独立集相关推荐

  1. 无向图的最大团/最大独立集 算法总结

    无向图的最大团/最大独立集 算法总结 目录 概述 普通DFS Bron-Kerbosch算法 概述 最大团其实就是最大完全子图的点集,同理极大团也就是极大完全子图的点集,点集内所有的点两两之间都有边相 ...

  2. 图论 最大团,最大独立集

    经典的NP完全问题,只有暴力解,时间复杂度O(n2^n) 对于无向图来说 所谓最大团, 其实就是找一个最大完全子图,最大就是包含的点最多. 而最大独立集 == 补图的最大团 这里使用深度优先搜索实现, ...

  3. Bron–Kerbosch算法求一般图最大团/最大独立集

    最大团: V中取K个顶点,两点间相互连接   最大独立集: V中取K个顶点,两点间不连接    最大团数量 = 补图中最大独立集数 关于 Bron-Kerbosch算法(原文) 基础形式是一个递归回溯 ...

  4. 最大团 matlab,无向图中最大团问题的求解(附上matlab代码)

    一.问题描述: 团就是最大完全图:最大团就是数目最多的最大子图:[1] 对于给定的无向图G(V,E).如果U在V集合内,且对任意的u,v在集合V内,且(u,v)属于集合E,则称U是G的完全子图:(u, ...

  5. 无向图的最大独立集和最大团

    首先说说最大独立集和最大团的意义: 最大独立集:从无向图中的顶点中选出k个并且k个顶点之间互不相邻,最大的k就是最大独立集 最大团:从无向图的顶点集中选出k个并且k个顶点之间任意两点之间都相邻(完全图 ...

  6. 【每日算法】【图论】【最小边覆盖 最小路径覆盖 最小顶点覆盖 最大独立集 最大团】

    最小边覆盖 = 最大独立集 = |V| - 最大匹配数 这个是在原图是二分图上进行的 最小路径覆盖和最小边覆盖不同,不要求给的图是二分图,而是要求是N x N的有向图,不能有环,然后根据原图构造二分图 ...

  7. 最大团与最大独立集(递推法+dfs两剪枝求最大团)

    传送门 最大团:从无向图的顶点集中选出k个并且k个顶点之间任意两点之间都相邻(完全图),最大的k就是最大团 最大独立集:从无向图中的顶点中选出k个并且k个顶点之间互不相邻,最大的k就是最大独立集 性质 ...

  8. 【机器学习系列】概率图模型第三讲:深入浅出无向图中的条件独立性和因子分解

    作者:CHEONG 公众号:AI机器学习与知识图谱 研究方向:自然语言处理与知识图谱 阅读本文之前,先注意一下两点: 1. 机器学习系列文章常含有大量公式推导证明,为了更好理解,文章在最开始会给出本文 ...

  9. 作业12——分支限界解决最大团和图m着色问题

    1.问题 最大团:求一张无向图的最大团.团的定义:给定图G=(V,E),其中,V={1,-,n}是图G的顶点集,E是图G的边集,图G的团就是一个两两之间有边的顶点集合,团是G的一个完全子图.如果一个团 ...

最新文章

  1. R语言ggplot2可视化:应用pivot_longer函数将数据从宽格式转换为长格式、为dataframe的每一列绘制密度图和直方图(堆叠)
  2. 遍历jenkins build后的文件夹,找出最新“build NO.”复制到制定目录进行操作
  3. 你所不知道的Android Studio调试技巧
  4. centos mate桌面_CentOS 7安装桌面汇总
  5. 修补分支提交注意事项
  6. 1、虚拟机内存管理、运行时数据区、线程共享区、Java堆、新生代、老年代、Eden区域分配、方法区、线程独占区、虚拟机栈
  7. html文档php 取mac地址_cpu序列号_硬盘序列号,用vbs脚本获取网卡MAC,CPUID,硬盘序列号的实现代码...
  8. DevCon.exe (DevCon Command Line Utility)
  9. java 火星坐标转wgs84_js中火星坐标、百度坐标、WGS84坐标转换实现方法示例
  10. HTTP Header 详解【转】
  11. 【 2019中国大学生程序设计竞赛(CCPC) - 网络选拔赛】1002.array【主席树】
  12. 编译cwm-recovery(含部分修改步骤)[转]
  13. leetcode[81]Search in Rotated Sorted Array II
  14. NSIS 安装VS2008运行时
  15. 思科与华为常用交换机产品线介绍
  16. 【Code pratice】——星期一、猜年龄、合并检测、生日蜡烛
  17. 2017、2018年JS面试题记录分享
  18. 从未相识——只愿下一世安好
  19. 华为softco直接用语音服务器注册IMS返回403错误代码
  20. Fetcher failure for URL: ‘gitsm://github.com/Xilinx/qemu.git;protocol=https petalinux build 问题

热门文章

  1. STM32F103ZET6 ATK1218-BD精简版例程
  2. 计算机组装win7实训报告,计算机基础1实验报告win7基本操作.docx
  3. Prometheus服务发现+Grafana炫酷的界面展示
  4. 编辑距离算法(LD)详解
  5. UE4之局域网游戏如何更改配置文件
  6. STC89C52单片机数码管介绍以及代码示例
  7. 百度智能云“寿光设施蔬菜智脑”项目斩获国际大奖
  8. 梦幻兄弟连-西游神魔战争即将开启
  9. 虚拟化与云计算的区别
  10. win10深澜校园网客户端拨号错误失败的解决办法