题目:对于给定的无向图,找出他的最大团
分析:
图的一个完全子图就是一个团,所以找最大团,通俗点讲就是在一个无向图中找出一个点数最多的完全图【任意两点之间均有边相邻】
采用回溯法,对于解空间的子集树,只有当前节点和所有已选的顶点都相连,才进入左子树
而当 当前结点加上剩下节点数比最优节点的个数多时 才进入右子树 这样才有价值

#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
#define N 6
int n=5;
int cn=0;//当前结点的个数
int cx[N];//记录当前结点的数组
int bn=0;//记录最优结点的个数
int bestx[N];//记录最优结点的数组
//图的邻接矩阵
int G[N][N]={0,0,0,0,0,0,0,1,1,0,1,1,0,1,1,1,0,1,0,0,1,1,0,1,0,1,0,0,1,1,0,1,1,1,1,1};
void dfs(int i){//当前第i个节点if(i>n){//出口 bn=cn;//记录最优值 for(int j=1;j<=n;j++){bestx[j]=cx[j];   }} int flag=1;for(int j=1;j<i;j++){//小于i if(cx[j]&&G[i][j]==0){//与被选节点 必须全部相邻 flag=0; break; }} if(flag){cx[i]=1;//当前节点被选了cn++;//已选节点个数+1 dfs(i+1);//回溯 cx[i]=0;cn--; }if(cn+n-i>bn){// cx[i]=0;dfs(i+1);}
}
int main(){memset(cx,0,sizeof(cx));//初始化当前的记录数组dfs(3);//任意一点搜索cout<<"一个最大团包含的节点为:";for(int i=1;i<=n;i++){if(bestx[i]==1){cout<<i<<" ";}} cout<<endl;
}

该算法的缺点在于:一次只能求出一个最大团

最大团问题【回溯法】相关推荐

  1. c语言实现判断两个子图是否同构问题_经典问题-回溯法-最大团问题

    1. 知识点 注:用回溯法实现最大团问题和用回溯法实现装载问题,解决方案和复杂度是类似的.如果你对回溯法或者子集树问题,并不了解,可以参看一下这篇文章,里面补充了回溯法和子集树的概念. 装载问题-回溯 ...

  2. 回溯法--最大团(部队护卫队问题)

    package com.duoduo.day316; /*** 回溯法--最大团问题* 问题描述:为组织一支队伍,希望选出最多的居民加入队伍中,并保证其中任意两人均不是仇敌,给定仇敌关系图,计算构建护 ...

  3. 回溯法——最大团问题

    回溯法--最大团问题 问题: 给定无向图G=(V,E).如果U∈V,且对任意u,v∈U有(u,v)∈E,则称U是G的完全子图. G的完全子图U是G的团当且仅当U不包含在G的更大的完全子图中. G的最大 ...

  4. 【算法分析】实验 4. 回溯法求解0-1背包等问题

    目录 实验内容 实验目的 实验结果 步骤1:描述与分析 步骤2:策略以及数据结构 步骤3 步骤4 步骤5 步骤6 实验总结 实验内容 本实验要求基于算法设计与分析的一般过程(即待求解问题的描述.算法设 ...

  5. 回溯法 -数据结构与算法

    1.回溯法算法思想: 定义: 回溯法(探索与回溯法)是一种选优搜索法,按选优条件向前搜索,以达到目标.但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术 ...

  6. 用c语言验证装载问题 回溯法,《算法分析与设计》期末考试复习题纲(完整版)...

    <算法分析与设计>期末复习题 一.选择题 1. 算法必须具备输入.输出和( D )等4个特性. A.可行性和安全 性 B .确定性和易读性 C.有穷性和安全 性 D .有穷性和确定性 2. ...

  7. 回溯法解决部落冲突问题

    回溯法解决部落冲突问题 实验内容 问题描述 思路分析 方法步骤 实验代码 实验内容 原始部落byteland中的居民为了争抢有限的资源,经常发生冲突.几乎每个居民都有它的仇敌.部落酋长为了组织一支保卫 ...

  8. 回溯法(算法分析与设计)

    0.回溯法的算法框架 A.简介 回溯法,又称试探法.一般需要遍历解空间,时间复杂度概况:子集树Ω(2^n),排序树Ω(n!),暴力法 B.回溯法解题三步骤 1)定义问题的解空间 如0-1背包问题,当n ...

  9. 计算机算法设计与分析(第五版)---王晓冬--------前六章(递归与分治,动态规划,贪心算法,回溯法,)期末复习资料总结

    --1--  算法:解决问题的一种方法或者一个求解过程 是若干指令的序列 输入 输出 有限性 确定性 程序:用某种设计语言对算法的具体实现 可以不满足 有限性 程序 = 算法+数据结构 果子合并问题( ...

  10. 回溯法-子集树排序树满m叉树

    回溯法是在仅给出初始节点.目标节点及产生子节点的条件的情况下,构造出一个图,然后按照深度优先搜索的思想,在有关条件的约束下扩展到目标节点,从而找到问题的解. 子集树 当所给的问题是从n个元素组成的集合 ...

最新文章

  1. CloudFoundry cf push命令报错误码223的解决方法
  2. c#求三角形面积周长公式_此题要求三角形的面积,但是无法用公式求出,而是通过方程解决...
  3. [签名算法]DSA 算法
  4. LeetCode 2180. 统计各位数字之和为偶数的整数个数
  5. hash存储结构【六】
  6. xp系统windows 组件向导无iis安装选项解决办法
  7. python语言的基础知识_pythone语言基础知识汇总
  8. jquery easy ui 1.3.4 窗口,对话框,提示框(5)
  9. 机器学习深度学习知识点总结
  10. php ajax session,Ajax处理用户session失效
  11. Redis基础学习(2)
  12. 学JS的心路历程 - JS应用
  13. 这项技术曾应用于无人驾驶,荣耀10将其移植到手机上这样操作!
  14. 美团成都一面面经及详细答案
  15. Scrapy 出现DEBUG:Filtered duplicate request
  16. [转]淘宝的十年技术之路
  17. QT实现弹幕和webp格式礼物动效
  18. 《MATLAB 神经网络43个案例分析》:第25章 基于MIV的神经网络变量筛选----基于BP神经网络的变量筛选
  19. sap客户信贷_SAP SD 信贷控制范围-特别总账控制的信贷更新
  20. 老狼RAT(远程辅助管理员软件)学习笔记(一)

热门文章

  1. 天下谁人不识“金” — SONY NW-WM1ZM2 索尼金砖二代测评
  2. 100%可用的总裁主题授权版 WordPress付费资源素材下载主题
  3. 计蒜客 农场看守(欧拉回路)
  4. 大数据、云计算、物联网三者的关系
  5. 安装QQ音乐后导致Windows系统程序audiodg.exe频繁报错
  6. 记录自已学习之ARM汇编语言之bic和orr
  7. turtle实例2 奥运五环
  8. 沧海云帆服务器哪里的,11月沧海云帆大区天涯合璧 合服服务器公告
  9. 图片转换html源代码,将图片转换成HTML格式的文字图程序源代码
  10. 磁共振线圈分类_磁共振检查的线圈选择