本文主要是介绍HDU1068/POJ1466_Girls and Boys(二分图/最大独立集=N-最大匹配),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
解题报告
http://blog.csdn.net/juncoder/article/details/38160591
题目传送门(POJ)
题目传送门(HDU)
题意:
求满足条件的最大集合:集合内任何两个人都没有浪漫关系
思路:
跟POJ2771一样的题,变的简单多了。POJ2771解题报告
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
int n,mmap[550][550],pre[550],vis[550];
int dfs(int x)
{for(int i=0; i<n; i++) {if(!vis[i]&&mmap[x][i]) {vis[i]=1;if(pre[i]==-1||dfs(pre[i])) {pre[i]=x;return 1;}}}return 0;
}
int main()
{int i,j,a,b,k;while(~scanf("%d",&n)) {memset(mmap,0,sizeof(mmap));memset(pre,-1,sizeof(pre));for(i=1; i<=n; i++) {scanf("%d: (%d) ",&a,&k);for(j=1; j<=k; j++) {scanf("%d",&b);mmap[a][b]=1;}}int ans=0;for(i=0; i<n; i++) {memset(vis,0,sizeof(vis));ans+=dfs(i);}printf("%d\n",n-ans/2);}return 0;
}
Time Limit: 5000MS | Memory Limit: 10000K | |
Total Submissions: 10348 | Accepted: 4608 |
Description
Input
the number of students
the description of each student, in the following format
student_identifier:(number_of_romantic_relations) student_identifier1 student_identifier2 student_identifier3 ...
or
student_identifier:(0)
The student_identifier is an integer number between 0 and n-1 (n <=500 ), for n subjects.
Output
Sample Input
7 0: (3) 4 5 6 1: (2) 4 6 2: (0) 3: (0) 4: (2) 0 1 5: (1) 0 6: (2) 0 1 3 0: (2) 1 2 1: (1) 0 2: (1) 0
Sample Output
5 2
这篇关于HDU1068/POJ1466_Girls and Boys(二分图/最大独立集=N-最大匹配)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!