poj 1466 Girls and Boys (二分图最大独立集)
2011-10-17 20:46
387 查看
题目链接:http://poj.org/problem?id=1466
题意:有N个学生(男生+女生),求一个最大数M,使得这M个学生中任意两个之间都没有romantically involved
解题思路:此题为二分图最大独立集,二分图最大独立集=顶点数-最大匹配数;由于本题中匹配被重复计算了一次,因此最大匹配数要除以2;
题意:有N个学生(男生+女生),求一个最大数M,使得这M个学生中任意两个之间都没有romantically involved
解题思路:此题为二分图最大独立集,二分图最大独立集=顶点数-最大匹配数;由于本题中匹配被重复计算了一次,因此最大匹配数要除以2;
#include<iostream> #include<algorithm> #include<cstring> #include<vector> using namespace std; int v[510];int t[510]; vector<int> s[510]; int fun(int x) { for(int i=0;i<s[x].size();i++) { if(!v[s[x][i]]) { v[s[x][i]]=1; if(t[s[x][i]]==-1||fun(t[s[x][i]])) { t[s[x][i]]=x;return 1; } } } return 0; } int main() { int m; while(cin>>m) { memset(t,-1,sizeof(t)); for(int i=0;i<510;i++)s[i].clear(); for(int i=0;i<m;i++) { int n;char s1,s2,s3;int k;cin>>n>>s1>>s2>>k>>s3; for(int j=1;j<=k;j++){int a;cin>>a;s .push_back(a);} } int sum=0; for(int i=0;i<m;i++) { memset(v,0,sizeof(v)); if(fun(i))sum++; } cout<<m-sum/2<<endl; } }
相关文章推荐
- POJ 1466: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(二分图最大独立集)
- 【二分图|最大点独立集】POJ-1466 Girls and Boys
- POJ 1466 && ZOJ 1137--Girls and Boys【二分图 && 最大点独立集】
- POJ 1466 Girls and Boys(二分图最大独立集)
- POJ 1466 Girls and Boys【二分图_最大独立集】
- poj 1466 Girls and Boys 二分图 最大独立集 (★★☆☆☆)
- POJ-1466 Girls and Boys (二分图最大独立集)
- POJ1466 Girls and Boys【二分图最大独立集】
- 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 (最大独立集Hungary)