图论 最大团,最大独立集
来源:互联网 发布:sqlserver 认证 编辑:程序博客网 时间:2024/06/06 05:32
经典的NP完全问题,只有暴力解,时间复杂度O(n2^n)
对于无向图来说
所谓最大团, 其实就是找一个最大完全子图,最大就是包含的点最多.
而最大独立集 == 补图的最大团
这里使用深度优先搜索实现,对于每一个结点,考虑要与不要两种状态,则问题构成一个子集树,本质上与01背包一样,只不过多了联通性的判断
#include <bits/stdc++.h>const int SIZE = 55;int Graph[SIZE][SIZE];//int bestx[SIZE]; //记录最大的团int inset[SIZE];//当前用到的的结点int cn,bestn;//当前的节点数量 ,, 当前最大的节点数量int n;void DFS( int i ){ if ( i > n ) { //此处可以记录最大团 bestn = cn; return; } int flag = 1; for (int j = 0 ;j < cn;++j ) if ( Graph[i][inset[j]] == 0){ flag = 0; break; } if ( flag ) { inset[cn++] = i; DFS( i+1 ); cn--; } if ( cn + n - i > bestn ) DFS(i+1);}void init() { //memset(Graph,0,sizeof(Graph)); //memset(x,0,sizeof(x)); memset(inset,0,sizeof(inset)); bestn = cn = 0 ;}int main(){ while ( ~scanf("%d",&n) && n ){ init(); for (int i = 1;i <= n;++i ) for (int j = 1;j <= n;++j ) scanf("%d",&Graph[i][j]); DFS(1); int ans = bestn; printf("%d\n",ans); } return 0;}
0 0
- 图论 最大团,最大独立集
- 最大团,最大独立集
- 独立集,覆盖集,支配集,最大团,最大匹配
- 独立集,覆盖集,支配集,最大团,最大匹配
- 独立集,覆盖集,支配集,最大团,最大匹配
- 独立集,覆盖集,支配集,最大团,最大匹配
- POJ3692 二分图最大团 最大独立集
- 无向图的最大团与最大独立集
- POJ 3692 Kindergarten 最大团->最大独立集
- POJ 1419 最大独立集(即最大团)
- Bron–Kerbosch算法-最大独立集与最大团
- POJ 1419 Graph Coloring(最大独立集、最大团)
- 无向图的最大独立集和最大团
- poj1419 点独立集/最大团
- poj1185 点独立集/最大团
- 【最小边覆盖 & 最小路径覆盖 & 最小顶点覆盖 & 最大独立集 & 最大团】
- 二分图的最小路径覆盖,最大独立集,最大团,支配数之间关系证明
- 最大独立集 最小点覆盖 最小边覆盖 最小路径覆盖 最大团
- 使用net send命令在局域网内发消息
- No387FirstUniqueCharacterInAString
- 为什么说中小公司自建Redis是一件不太靠谱的事情?
- 读入优化
- 算法导论之寻找最大子数组
- 图论 最大团,最大独立集
- maven+springmvc+dubbozookeeper
- 优雅地为RecyclerView加上头部、下拉刷新、自动加载
- Java Map 按Key排序
- shell 和 python3 :Word Frequency(leetcode192-t11.sh)
- 高并发实时直播弹幕研发实践|架构师实践日
- ssh免密码设置
- 事务和线程的区别还有事务并发执行引起的四个问题:丢失修改、脏读、不可重复读,幻读
- 实现分组+固定表头的ListView之PinnedHeaderListView