无向图的最大团/最大独立集
讲解的博客: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
无向图的最大团/最大独立集相关推荐
- 无向图的最大团/最大独立集 算法总结
无向图的最大团/最大独立集 算法总结 目录 概述 普通DFS Bron-Kerbosch算法 概述 最大团其实就是最大完全子图的点集,同理极大团也就是极大完全子图的点集,点集内所有的点两两之间都有边相 ...
- 图论 最大团,最大独立集
经典的NP完全问题,只有暴力解,时间复杂度O(n2^n) 对于无向图来说 所谓最大团, 其实就是找一个最大完全子图,最大就是包含的点最多. 而最大独立集 == 补图的最大团 这里使用深度优先搜索实现, ...
- Bron–Kerbosch算法求一般图最大团/最大独立集
最大团: V中取K个顶点,两点间相互连接 最大独立集: V中取K个顶点,两点间不连接 最大团数量 = 补图中最大独立集数 关于 Bron-Kerbosch算法(原文) 基础形式是一个递归回溯 ...
- 最大团 matlab,无向图中最大团问题的求解(附上matlab代码)
一.问题描述: 团就是最大完全图:最大团就是数目最多的最大子图:[1] 对于给定的无向图G(V,E).如果U在V集合内,且对任意的u,v在集合V内,且(u,v)属于集合E,则称U是G的完全子图:(u, ...
- 无向图的最大独立集和最大团
首先说说最大独立集和最大团的意义: 最大独立集:从无向图中的顶点中选出k个并且k个顶点之间互不相邻,最大的k就是最大独立集 最大团:从无向图的顶点集中选出k个并且k个顶点之间任意两点之间都相邻(完全图 ...
- 【每日算法】【图论】【最小边覆盖 最小路径覆盖 最小顶点覆盖 最大独立集 最大团】
最小边覆盖 = 最大独立集 = |V| - 最大匹配数 这个是在原图是二分图上进行的 最小路径覆盖和最小边覆盖不同,不要求给的图是二分图,而是要求是N x N的有向图,不能有环,然后根据原图构造二分图 ...
- 最大团与最大独立集(递推法+dfs两剪枝求最大团)
传送门 最大团:从无向图的顶点集中选出k个并且k个顶点之间任意两点之间都相邻(完全图),最大的k就是最大团 最大独立集:从无向图中的顶点中选出k个并且k个顶点之间互不相邻,最大的k就是最大独立集 性质 ...
- 【机器学习系列】概率图模型第三讲:深入浅出无向图中的条件独立性和因子分解
作者:CHEONG 公众号:AI机器学习与知识图谱 研究方向:自然语言处理与知识图谱 阅读本文之前,先注意一下两点: 1. 机器学习系列文章常含有大量公式推导证明,为了更好理解,文章在最开始会给出本文 ...
- 作业12——分支限界解决最大团和图m着色问题
1.问题 最大团:求一张无向图的最大团.团的定义:给定图G=(V,E),其中,V={1,-,n}是图G的顶点集,E是图G的边集,图G的团就是一个两两之间有边的顶点集合,团是G的一个完全子图.如果一个团 ...
最新文章
- R语言ggplot2可视化:应用pivot_longer函数将数据从宽格式转换为长格式、为dataframe的每一列绘制密度图和直方图(堆叠)
- 遍历jenkins build后的文件夹,找出最新“build NO.”复制到制定目录进行操作
- 你所不知道的Android Studio调试技巧
- centos mate桌面_CentOS 7安装桌面汇总
- 修补分支提交注意事项
- 1、虚拟机内存管理、运行时数据区、线程共享区、Java堆、新生代、老年代、Eden区域分配、方法区、线程独占区、虚拟机栈
- html文档php 取mac地址_cpu序列号_硬盘序列号,用vbs脚本获取网卡MAC,CPUID,硬盘序列号的实现代码...
- DevCon.exe (DevCon Command Line Utility)
- java 火星坐标转wgs84_js中火星坐标、百度坐标、WGS84坐标转换实现方法示例
- HTTP Header 详解【转】
- 【 2019中国大学生程序设计竞赛(CCPC) - 网络选拔赛】1002.array【主席树】
- 编译cwm-recovery(含部分修改步骤)[转]
- leetcode[81]Search in Rotated Sorted Array II
- NSIS 安装VS2008运行时
- 思科与华为常用交换机产品线介绍
- 【Code pratice】——星期一、猜年龄、合并检测、生日蜡烛
- 2017、2018年JS面试题记录分享
- 从未相识——只愿下一世安好
- 华为softco直接用语音服务器注册IMS返回403错误代码
- Fetcher failure for URL: ‘gitsm://github.com/Xilinx/qemu.git;protocol=https petalinux build 问题