poj 1466 Girls and Boys (最大独立集)
来源:互联网 发布:淘宝公司需要交税吗 编辑:程序博客网 时间:2024/06/05 09:46
链接:poj 1466
题意:有n个学生,每个学生都和一些人有关系,现在要你找出最大的人数,使得这些人之间没关系
思路:求最大独立集,最大独立集=点数-最大匹配数
分析:建图时应该是一边是男生的点,一边是女生的点连边,但是题目中没说性别的问题,只能将每个点拆成两个点,一个当作是男的点,一个当作是女的点了,然后连边.由于关系是相互的,这样就造成了边的重复。也就是边集是刚才的二倍,从而导致了最大匹配变成了原本的二倍,因此,此时最大独立集=点数-最大匹配数/2.
#include<stdio.h>#include<string.h>int n,edge[510][510],link[510],used[510];int dfs(int pos){ int i; for(i=0;i<n;i++){ if(edge[pos][i]&&!used[i]){ used[i]=1; if(link[i]==-1||dfs(link[i])){ link[i]=pos; return 1; } } } return 0;}int main(){ int i,j,a,b,s,m; while(scanf("%d",&n)!=EOF){ memset(edge,0,sizeof(edge)); for(i=0;i<n;i++){ scanf("%d: (%d)",&a,&m); for(j=0;j<m;j++){ scanf("%d",&b); edge[a][b]=1; //建图 } } memset(link,-1,sizeof(link)); s=0; for(i=0;i<n;i++){ memset(used,0,sizeof(used)); s+=dfs(i); } printf("%d\n",n-s/2); //记住要减去最大匹配数的一半 } return 0;}
0 0
- POJ 1466 Girls and Boys (最大独立集Hungary)
- poj 1466 Girls and Boys (最大独立集)
- POJ 1466 Girls and Boys(最大独立点集)
- POJ 1466 Girls and Boys(最大独立集)
- poj 1466 Girls and Boys (最大独立)
- pku(poj) 1466 Girls and Boys (最大独立集)
- POJ 1466 Girls and Boys(最大独立点集)
- POJ 1466 Girls and Boys (最大独立点集)
- POJ 1466 Girls and Boys 最大独立集
- POJ-1466-Girls and Boys(二分图最大独立集)
- POJ 1466 Girls and Boys(二分图最大独立集)
- POJ 1466 Girls and Boys (匈牙利算法 最大独立集)
- poj 1466 && hdu 1068Girls and Boys(最大独立集)
- POJ 1466 Girls and Boys(二分图最大独立集)
- POJ 1466 Girls and Boys(二分图最大独立集)
- POJ-1466 Girls and Boys(最大独立集)
- POJ 1466 Girls and Boys(二分图最大独立集)
- poj 1466 Girls and Boys (二分图最大独立集)
- FAQ03127 MTK修改代码编绎命令
- ListView视图缓存错位问题
- C++中关于虚函数与虚函数表的理解
- 北大青鸟代码---asp.net初学者宝典
- 设计模式之观察者模式-Observer
- poj 1466 Girls and Boys (最大独立集)
- 对编码的认识与想法
- libvirt架构及源码分析
- 初学C#_4
- 算法导论7.4-5
- string was not declared in this scope问题解决方法
- 服务器 libevent源码深度剖析二
- 理解Java线程的中断
- 深入理解javascript原型和闭包(11)——执行上下文栈