极大团

将最大独立集转化为极大团来做

代码

struct MaxClique
{
    bool G[maxn][maxn];
    int n,cnt[maxn],group[maxn];
    int ans,save[maxn];
    void init(int nn){ n=nn; }
    bool dfs(int u,int step)
    {
        for(int i=u+1;i<=n;i++)
        {
            if(cnt[i]+step<=ans) return false;
            if(!G[u][i]) continue;
            int j;
            for(j=0;j<step;j++) if(!G[i][save[j]]) break;
            if(j==step)
            {
                save[step]=i;
                if(dfs(i,step+1)) return true;
            }
        }
        if(step>ans)
        {
            for(int i=0;i<step;i++) group[i]=save[i];
            ans=step;
            return true;
        }
        return false;
    }
    void solve()
    {
        ans=-1;
        for(int i=n;i>0;i--)
        {
            save[0]=i;
            dfs(i,1);
            cnt[i]=ans;
        }
    }
}mc;

时间: 2024-09-29 08:09:43

极大团的相关文章

一般图极大团个数,最大团顶点数

极大团个数:POJ 2989 #include <cstdio> #include <cstring> using namespace std; const int maxn = 130; bool mp[maxn][maxn]; int some[maxn][maxn], none[maxn][maxn], all[maxn][maxn]; int n, m, ans; void dfs(int d, int an, int sn, int nn) { if(!sn &&

极大团模板

极大团个数模板 感觉很玄学套用就对了orz上代码 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 #include <iostream>#include <stdio.h>#include <string.h>#define maxn 130us

poj1419 Graph Coloring 最大独立集(最大团)

最大独立集: 顶点集V中取 K个顶点,其两两间无连接. 最大团: 顶点集V中取 K个顶点,其两两间有边连接. 最大独立集=补图的最大团最大团=补图的最大独立集 #include<iostream> #include<cstring> #include<cstdio> using namespace std; int mp[110][110],mark1[505],mark2[505]; int n,m; int cnt,maxx; void dfs(int x) { i

关于弦图一些问题的解法

完美消除序列($MCS$算法): 每个点记录一个势,表示与它相邻的已经在完美消除序列的点的个数. 先把$n$号点弄出来,然后每次把势最大的弄出来,这样依次求出的点的逆序就是完美消除序列,使用链表或动态数组可以让复杂度降至$O(n)$. 代码: 1 for (RG int i=1;i<=n;++i) ep[0].push_back(i); 2 for (RG int i=n,now;i;--i){ 3 while (1){ 4 now=ep[best].back(); if (!l[now]) b

题单二:图论500

http://wenku.baidu.com/link?url=gETLFsWcgddEDRZ334EJOS7qCTab94qw5cor8Es0LINVaGMSgc9nIV-utRIDh--2UwRLvsvJ5tXFjbdpzbjygEdpGehim1i5BfzYgYWxJmu ==========  以下是最小生成树+并查集=========================[HDU]1213         How Many Tables        基础并查集★1272         小

图论五百题!

生死看淡不服就淦,这才是人生! =============================以下是最小生成树+并查集======================================[HDU]1213 How Many Tables 基础并查集★1272 小希的迷宫 基础并查集★1325&&poj1308 Is It A Tree? 基础并查集★1856 More is better 基础并查集★1102 Constructing Roads 基础最小生成树★1232 畅通工程 基

图论 500题——主要为hdu/poj/zoj

转自——http://blog.csdn.net/qwe20060514/article/details/8112550 =============================以下是最小生成树+并查集======================================[HDU]1213   How Many Tables   基础并查集★1272   小希的迷宫   基础并查集★1325&&poj1308  Is It A Tree?   基础并查集★1856   More i

[转] 一些图论、网络流入门题总结、汇总

最短路问题此类问题类型不多,变形较少 POJ 2449 Remmarguts' Date(中等)http://acm.pku.edu.cn/JudgeOnline/problem?id=2449题意:经典问题:K短路解法:dijkstra+A*(rec),方法很多相关:http://acm.pku.edu.cn/JudgeOnline/showcontest?contest_id=1144该题亦放在搜索推荐题中 POJ 3013 - Big Christmas Tree(基础)http://ac

【转】一些图论、网络流入门题总结、汇总

最短路问题 此类问题类型不多,变形较少 POJ 2449 Remmarguts' Date(中等) http://acm.pku.edu.cn/JudgeOnline/problem?id=2449 题意:经典问题:K短路 解法:dijkstra+A*(rec),方法很多 相关:http://acm.pku.edu.cn/JudgeOnline/showcontest?contest_id=1144 该题亦放在搜索推荐题中 POJ 3013 - Big Christmas Tree(基础) ht