POJ 1419 最大独立集(即最大团)
来源:互联网 发布:手机怎样申请淘宝店铺 编辑:程序博客网 时间:2024/06/05 07:16
POJ 1419
题目链接:
http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=17391
题意:
给一个图,要求把图中点染色,规则是一个点如果染成黑色,则有边相连的其他点不能染成黑色。
问怎样选取最多的点染成黑色。输出点个数和选取方案。
思路:
最大独立集:一个图中最大的互相没有边相连的点集。
结论:原图的最大独立集等于补图的最大团
源码:
#include <cstdio>
#include <cstring>
#include <cmath>
#include <cstdlib>
#include <algorithm>
#include <iostream>
#include <string>
#include <vector>
using namespace std;
const int MAXN = 100 + 5;
int gra[MAXN][MAXN];
int vis[MAXN];
int val[MAXN];
int ans[MAXN], cnt;
int n, m;
bool check(int mark)
{
for(int i = 1 ; i < mark ; i++)
if(vis[i] && gra[i][mark] == 0)
return false;
return true;
}
void DFS(int mark, int num)
{
if(num > cnt){
cnt = num;
int now = 0;
for(int i = 1 ; i <= n ; i++){
if(vis[i])
ans[now++] = i;
}
}
for(int i = mark + 1 ; i <= n ; i++){
if(check(i)){
vis[i] = 1;
DFS(i, num + 1);
vis[i] = 0;
}
}
}
int main()
{
int t;
scanf("%d", &t);
while(t--){
scanf("%d%d", &n, &m);
for(int i = 1 ; i <= n ; i++)
for(int j = 1 ; j <= n ; j++)
gra[i][j] = 1;
int u, v;
for(int i = 0 ; i < m ; i++){
scanf("%d%d", &u, &v);
gra[u][v] = gra[v][u] = 0;
}
cnt = 0;
memset(vis, 0, sizeof(vis));
for(int i = 1 ; i <= n ; i++){
vis[i] = 1;
DFS(i, 1);
vis[i] = 0;
}
printf("%d\n", cnt);
int f = 1;
for(int i = 0 ; i < cnt ; i++){
if(f) f = 0;
else printf(" ");
printf("%d", ans[i]);
}
printf("\n");
}
return 0;
}
- POJ 1419 最大独立集(即最大团)
- POJ 1419 Graph Coloring(最大独立集、最大团)
- POJ 1419 Graph Coloring(最大独立集/补图的最大团)
- 最大团,最大独立集
- POJ 3692 Kindergarten 最大团->最大独立集
- POJ 1419 Graph Coloring 最大独立点集->最大团 搜索
- poj 3692 最大团(二分图匹配,最大独立集)
- 图论 最大团,最大独立集
- poj 3692(浅谈二分图最大匹配求最大独立集在解决最大团问题中的应用)
- 独立集,覆盖集,支配集,最大团,最大匹配
- 独立集,覆盖集,支配集,最大团,最大匹配
- 独立集,覆盖集,支配集,最大团,最大匹配
- 独立集,覆盖集,支配集,最大团,最大匹配
- POJ3692 二分图最大团 最大独立集
- 无向图的最大团与最大独立集
- Bron–Kerbosch算法-最大独立集与最大团
- 无向图的最大独立集和最大团
- poj 3692 Kindergarten 【最大团 = 补图最大独立集 = 补图节点数 - 补图最大匹配】
- 字符串之单词原地逆转
- java基础关于java排序(一)
- CodeForces 339D Xenia and Bit Operations(线段树点修改)
- 安卓开发中应用欢迎页的简单实现
- MVCD动态生成a标签
- POJ 1419 最大独立集(即最大团)
- UVA 11248 Frequency Hopping (最大流)
- APM,AF和AS的设计思想
- ShutdownHook
- 清除行列
- 关于UIViewController添加UINavigationBar的详细实现方法
- Ceph快速安装:Ceph-deploy 在Ubuntu 14.04 Server上部署三节点安装
- 在Ubuntu 14.04 64bit中永久添加DNS的方法
- Problem HDU-1176 免费的馅饼 DP