zoj 1137 Girls and Boys(poj 1466)(最大独立点集)
2011-03-20 01:06
351 查看
最大独立顶点集
在一个二分图中,选择一些顶点,使得所有选择的顶点集合中没有任意两个顶点之间有边相连方法:二分图匹配,可以证明,最大独立顶点集的数目就是总顶点数减去最大匹配数(也就是每个匹配有一个边扔掉)
(摘自:http://my.opera.com/IloveLunamaria/blog/show.dml/810972)
就是说:极小覆盖点集和极大独立点集互补
这题题我一直没看懂,所以一直纳闷为啥是 n-cnt/2 ,后来看懂题了,才知道原来这题的二部图两边集合的点都一样,所以相当于最大匹配求了两次,所以要减去 cnt 的一半,纠结了好久……
#include<stdio.h> #include<string.h> #define N 1001 int n,map ,match ,vis ; int dfs(int x) { int i; for(i=0;i<n;i++) { if(map[x][i] && !vis[i]) { vis[i]=1; if(!match[i] || dfs(match[i])) { match[i]=x; return 1; } } } return 0; } int main() { int m,a,i,cnt,x; while(~scanf("%d",&n)) { memset(map,0,sizeof(map)); for(i=0;i<n;i++) { scanf("%d: (%d)",&x,&m); while(m--) { scanf("%d",&a); map[x][a]=1; } } memset(match,0,sizeof(match)); for(cnt=0,i=0;i<n;i++) { memset(vis,0,sizeof(vis)); if(dfs(i)) cnt++; } printf("%d/n",n-cnt/2); } return 0; }
相关文章推荐
- POJ 1466 Girls and Boys (ZOJ 1137 )最大独立点集
- POJ 1466 Girls and Boys (ZOJ 1137 )最大独立点集
- 网络流(最大独立点集):POJ 1466 Girls and Boys
- POJ 1466 && ZOJ 1137--Girls and Boys【二分图 && 最大点独立集】
- hdu 1068 zoj 1137 poj 1466 Girls and Boys(二分图匹配 匈牙利算法 最大独立集)
- POJ 1466 Girls and Boys(最大独立点集)
- POJ 1466 Girls and Boys(最大独立点集)
- poj1466——Girls and Boys(最大独立点集)
- zoj - 1137 - Girls and Boys(二分图最大独立点集)
- POJ 1466 Girls and Boys (最大独立点集)
- poj&nbsp;1466&nbsp;Girls&nbsp;and&nbsp;Boys(最大独立…
- poj 1466 Girls and Boys (最大独立)
- POJ Girls and Boys (最大独立点集)
- poj 1466 Girls and Boys (最大独立)
- poj 1466 Girls and Boys 二分图-最大独立子集
- POJ 1466 Girls and Boys 求最大独立点集
- HDU1068,POJ1466——Girls and Boys(二分图最大独立集)
- POJ 1466 Girls and Boys(最大独立集)
- POJ - 1466 Girls and Boys 二分图+最大独立集
- hdu 1068 Girls and Boys(二分图求最大独立点集)