HDU 1068 Girls and Boys (二分图 最大独立子集)
2014-07-29 11:03
375 查看
#include<stdio.h> #include<string.h> #define M 510 #define N 250010 int head[M],next ,key ,match[M]; int use[M],num,n; void add(int u,int v) { key[num]=v; next[num]=head[u]; head[u]=num++; } int find(int u) { int temp,i; for(i=head[u];i!=-1;i=next[i]) { temp=key[i]; if(!use[temp]) { use[temp]=1; if(match[temp]==-1||find(match[temp])) { match[temp]=u; return 1; } } } return 0; } int hungary() { int sum=0,i; for(i=0;i<n;i++) { memset(use,0,sizeof(use)); if(find(i))sum++; } return sum; } int main() { int u,v,i,j,m; while(scanf("%d",&n)!=-1) { num=0; memset(match,-1,sizeof(match)); memset(head,-1,sizeof(head)); for(i=0;i<n;i++) { scanf("%d: (%d)",&u,&m); for(j=0;j<m;j++) { scanf("%d",&v); add(u,v); } } printf("%d\n",n-(hungary()>>1)); } return 0; }
相关文章推荐
- HDU 1068 Girls and Boys(二分图最大独立点集,3级)
- HDU-1068 Girls and Boys 最大独立子集
- HDU 1068 Girls and Boys (匈牙利算法 二分图的最大独立集数 )
- hdu 1068 Girls and Boys(二分图求最大独立点集)
- HDU 1068 Girls and Boys(二分图最大独立点集,3级)
- HDU 1068 Girls and Boys二分图最大匹配
- hdu - 1068 Girls and Boys (二分图最大独立集+拆点)
- HDU 1068 Girls and Boys(模板——二分图最大匹配)
- (step6.3.2)hdu 1068(Girls and Boys——二分图的最大独立集)
- hdu 1068 girls and boys(二分图求最大独立集)
- [HDU] 1068 Girls and Boys(二分图最大匹配)
- HDU 1068 Girls and Boys(最大独立集合 = 顶点数 - 最大匹配数)
- 【hdu 1068 Girls and Boys 最大独立集数 匈牙利算法 】
- HDU 1068 Girls and Boys (二分图最大独立集)
- HDU 1068Girls and Boys(二分图最大匹配)
- hdu 1068 Girls and Boys(二分图+最大独立集)
- poj 1466 Girls and Boys 二分图-最大独立子集
- HDU 1068 Girls and Boys 二分图最大独立集(最大二分匹配)
- hdu 1068 Girls and Boys(二分图匹配---最大独立点集)
- HDU 1068 Girls and Boys(最大独立集合)