hdu1068
来源:互联网 发布:网络爬虫书籍推荐 编辑:程序博客网 时间:2024/04/30 09:25
/*
分析:
1、二分图的最大独立集数 = 节点数(n)— 最大匹配数(m);
2、由于这个题是集合内部的匹配(请注意~~~,题目可没有说,
凑成 romantic relation 一对儿的,一定是男&&女~),所以求出来
的是最大匹配数的两倍,所以ans=n-2*最大匹配数。
题目没有出现:“给出1号的时候,1可以匹2;而给2的时候,2能
匹配的对象中牟有1”的情况,否则还得要我们自己把其补全,才能用
上面的思路呢。
另外,也可以处理为:比如说让(1---2)和(2---1)的情况只有一
个,即1的对象有2,而2的对象没有1,那么这样得到的最大匹配数,
就是1倍的匹配数,就可以直接ans=n-最大匹配数了。
但是,这儿显然还是求两倍的方便~
2012-07-13
*/
分析:
1、二分图的最大独立集数 = 节点数(n)— 最大匹配数(m);
2、由于这个题是集合内部的匹配(请注意~~~,题目可没有说,
凑成 romantic relation 一对儿的,一定是男&&女~),所以求出来
的是最大匹配数的两倍,所以ans=n-2*最大匹配数。
题目没有出现:“给出1号的时候,1可以匹2;而给2的时候,2能
匹配的对象中牟有1”的情况,否则还得要我们自己把其补全,才能用
上面的思路呢。
另外,也可以处理为:比如说让(1---2)和(2---1)的情况只有一
个,即1的对象有2,而2的对象没有1,那么这样得到的最大匹配数,
就是1倍的匹配数,就可以直接ans=n-最大匹配数了。
但是,这儿显然还是求两倍的方便~
2012-07-13
*/
#include"stdio.h"#include"string.h"struct A{int total;int mem[1111];}E[1111];int match[1111];int visit[1111];int DFS(int k){int i;for(i=0;i<E[k].total;i++){if(visit[E[k].mem[i]])continue;visit[E[k].mem[i]]=1;if(match[E[k].mem[i]]==-1 || DFS(match[E[k].mem[i]])){match[E[k].mem[i]]=k;return 1;}}return 0;}int main(){int n;int ans;int i,l;int a,b;char str[22];int temp;while(scanf("%d",&n)!=-1){memset(match,-1,sizeof(match));for(i=0;i<n;i++)E[i].total=0;for(i=0;i<n;i++){scanf("%s",str);a=0;for(l=0;str[l]!=':';l++){a*=10;a+=str[l]-'0';}scanf("%s",str);temp=0;for(l=1;str[l]!=')';l++){temp*=10;temp+=str[l]-'0';}while(temp--){scanf("%d",&b);E[a].mem[E[a].total++]=b;}}ans=0;for(i=0;i<n;i++){if(E[i].total==0)continue;memset(visit,0,sizeof(visit));ans+=DFS(i);}ans=n-ans/2;printf("%d\n",ans);}return 0;}
- hdu1068
- hdu1068
- hdu1068
- { 图论 }hdu1068
- hdu1068 Girls and Boys
- hdu1068二分匹配
- HDU1068--Girls and Boys
- HDU1068:Girls and Boys
- HDU1068-Girls and Boys
- HDU1068 二分匹配
- hdu1068 Ignatius's puzzle
- HDU1068 Girls and Boys
- Girls and Boys||HDU1068
- hdu1068 Girls and Boys
- hdu1068 Girls and Boys
- hdu1068||poj1466(最大独立集)
- HDU1068 (最大独立集)
- hdu1068(二分)Girls and Boys
- No. 18 - Reverse a Linked List
- No. 19 - Left Rotation of String
- No. 20 - Number of 1 in a Binary
- Linux学习笔记(一)
- lq51--基于8051的嵌入式实时操作系统
- hdu1068
- ObjectInputStream 和 ObjectOutputStream(对象的序列化、持久化)
- VC 多线程编程
- poj3468 A Simple Problem with Integers
- vs下创建并调用DLL--简单例子
- 虚函数的特性
- android网易顶部导航栏demo
- 资源监控_自己编写一个nmon
- #include<reg51.h>点亮一排led