最大團問題
首先介紹一些基本概念:
1、什麼是團?如果乙個子圖是乙個無向圖的完全子圖,那麼可以稱為乙個團。
2、什麼是極大團?如果乙個團不是任何乙個團的子集,那麼可以稱做乙個極大團。
3、如果乙個極大團的大小是最大的,那麼可以被稱為乙個最大團。
最大團有以下常見性質,這裡不加證明的直接給出結論。
最大團點的數量等於其補圖中最大獨立集的數量(最大團與最大獨立集的關係)。特別的,在二分圖中,最大獨立集=頂點數-最大匹配數。(這個很好理解,因為找到補圖中的最大團,在圖中這些邊都是不存在的,並且是點個數最多的。)
下面給出模板:(hdu 1530)
#includeusing namespace std;
const int n = 105;
int n, g[n][n];
int cntclique, pts[n], res[n], cnt[n];
bool dfs(int pos, int num)
}if(ok)}}
if(num>cntclique)
cntclique=num;
return true;
}return false;
}void maxclique()
}int main()
}maxclique();
printf("%d\n",cntclique);
}return 0;
}
poj(1419)
#include#include//#includeusing namespace std;
const int n = 105;
int n, m, g[n][n];
int cntclique, pts[n], res[n], cnt[n];
bool dfs(int pos, int num)
}if(ok)}}
if(num>cntclique)
cntclique=num;
return true;
}return false;
}void maxclique()
}int main()
for(int i=1;i<=n;++i)}}
maxclique();
printf("%d\n",cntclique);
for(int i=1;i<=cntclique;++i)
}return 0;
}
最大團問題
include cstdio include queue include cstring define max 20 using namespace std int n 城市數量 int x max 解向量 struct node priority queuepq void enqueue int ...
最大團問題
題目 給定乙個圖的鄰接矩陣,求出該圖的所有最大團。最大完全子圖 1.自己思考的樸素演算法 1 根據題意畫出解空間樹 只以以1結點開始為例,其餘以其他結點開始的同下述方法 下圖中綠色結點為進入遞迴,紅色結點為不進入遞迴 從圖中發現,一種想法是按深度遍歷解集。關鍵問題就是如何設定遞迴的出口和去重。2 演...
最大團,極大團
團 對於給定圖g v,e 其中,v 是圖g的頂點集,e是圖g的邊集。圖g的團就是乙個兩兩之間有邊的頂點集合。簡單地說,團是g的乙個完全子圖。如果乙個團不被其他任一團所包含,即它不是其他任一團的真子集,則稱該團為圖g的極大團 maximal clique 頂點最多的極大團,稱之為圖g的最大團 maxi...