经典的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;
}

图论 最大团,最大独立集相关推荐

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

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

  2. 图论——最大团问题和最大独立集、二分图相关

    文章目录 最大团问题和最大独立集 二分图.用网络流解决最大二分匹配的方法 一种另类的增广路--交替路.匈牙利算法 一般图.二分图中的其它性质 P1640 [SCOI2010]连续攻击游戏 最大团问题和 ...

  3. 无向图的最大团/最大独立集

    讲解的博客:https://blog.csdn.net/SparkFucker/article/details/83051133 还没写完的代码: #include<iostream> # ...

  4. 图论 —— 最大团问题

    [问题描述] 当 G′ 是图 G 的子图,且 G′ 是关于 V′ 的完全图时,子图 G' 为图 G 的团:当 G' 是团,且不是其他团的子集时,G' 为图 G 的极大团:当 G' 是极大团时,且点数最 ...

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

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

  6. 回溯、图论——最大团问题(求最大完全子图)

     1.问题分析 要想解决最大团问题,也就是求最大完全子图.我们需要了解相关概念,现在有如下图: (1)完全子图: 给定无向图G=(V,E),其中V是顶点集,E是边集.G'=(V',E')如果顶点集V' ...

  7. [图论总结] 最大独立集(例题:Code Names)

    [图论总结1] 最大独立集的概念 独立集 匹配 概念之间的关系及性质 例题 最大独立集的概念 独立集 来自oi-wiki 在上面的描述中,V是代表的点集,而E代表的是边集 独立集以及最大独立集均是点的 ...

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

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

  9. 图论——强连通分量(Tarjan算法)

    文章目录 强连通分量 利用Tarjan算法求强连通分量 来一道例题练手(USACO08DEC) 图论文章汇总 强连通分量 什么是强连通图? 如果一个有向图中,存在一条回路,所有的结点至少被经过一次,这 ...

最新文章

  1. 19年BAT常问面试题汇总:JVM+微服务+多线程+锁+高并发性能
  2. python入门(一)
  3. Servlet中乱码问题
  4. 小马哥spring编程核心思想_Spring源码高级笔记之——Spring核心思想
  5. 第一个 PyQt5程序
  6. 正视长尾挑战!颜水成、冯佳时团队发布首篇《深度长尾学习》综述
  7. Vue_异步加载_vue-resource(不再维护)
  8. 关于搞技术的一点思考
  9. Java实现蛇形矩阵
  10. 关于cmp函数参数中的符号(转)
  11. execute与executeUpdate的区别
  12. 阮一峰:WebSocket 教程
  13. 【Java系列】八大排序算法
  14. 国家知识产权局 下载专利全文
  15. 怎样的男女才是最合适的
  16. 第三阶段应用层——1.7 数码相册—电子书(3)—轮询方式支持多输入
  17. 强大的Pidgin,Pidgin的使用
  18. 10年程序员私单的经历,送你3个找客户的关键技巧
  19. 工作日记---android lockscreen.java 在lock状态下显示charing和alarm
  20. 【akka】Akka源码分析-Event Bus

热门文章

  1. R4.0.2版本Rtools4安装教程(2023-02-14)
  2. 信息隐藏—音频隐藏LSB算法
  3. 以太坊智能合约 —— 最佳安全开发指南
  4. Maven项目之错误日志发邮件通知
  5. 陈景润定理不代表国际数学发展主流方向
  6. 线性代数(行列式1)
  7. QT 事件系统之QMouseEvent鼠标事件
  8. 云桌面是什么意思?与堡垒机有什么区别?
  9. 情人节翻译软件测试,情人节甜蜜制造机|互动装置干货精选
  10. Linux加载vmlinux调试