HDU 1068 — Girls and Boys 最大独立集
2015-05-15 14:41
288 查看
原题:http://acm.hdu.edu.cn/showproblem.php?pid=1068
题意:
给定一些男女生之间的暧昧关系,求一个最大的集合,使得集合中相互之间没有暧昧关系;
思路:
就是求最大独立集,最大独立集 = 顶点数 - 最大匹配;
题意:
给定一些男女生之间的暧昧关系,求一个最大的集合,使得集合中相互之间没有暧昧关系;
思路:
就是求最大独立集,最大独立集 = 顶点数 - 最大匹配;
#include<stdio.h> #include<vector> #include<string.h> #include<iostream> #include<algorithm> using namespace std; const int maxn = 1500; int lef[maxn]; bool T[maxn]; int n; vector<int>G[maxn]; bool match(int x) { for(int i = 0;i<G[x].size();i++) { int v = G[x][i]; if(!T[v]) { T[v] = true; if(lef[v] == -1 || match( lef[v] )) { lef[v] = x; return true; } } } return false; } int solve() { memset(lef, -1, sizeof(lef)); int ans = 0; for(int i = 0;i<n;i++) { memset(T, 0, sizeof(T)); if( match(i) ) ans++; } return ans; } int main() { while(scanf("%d", &n)!=EOF) { int m, k; for(int i = 0;i<n;i++) G[i].clear(); for(int i = 0;i<n;i++) { scanf("%d: (%d)", &m, &k); for(int j = 0;j<k;j++) { int x; scanf("%d", &x); G[i].push_back(x); } } int ans = solve(); printf("%d\n", n-ans/2); } return 0; }
相关文章推荐
- HDU1068 Girls and Boys(最大独立集)
- hdu 1068 Girls and Boys(匈牙利算法求最大独立集)
- hdu 1068 zoj 1137 poj 1466 Girls and Boys(二分图匹配 匈牙利算法 最大独立集)
- HDU 1068 Girls and Boys (二分图匹配---最大独立集)
- HDU 1068 Girls and Boys (二分最大独立集)
- HDU 1068 Girls and Boys 最大独立集
- hdu 1068 Girls and Boys(最大独立集·maxmatch匈牙利)
- (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 1068 Girls and Boys 匈牙利算法求最大独立集
- HDU 1068 Girls and Boys 最大独立集
- hdu 1068 Girls and Boys(最大独立集,二分匹配)
- HDU - 1068 Girls and Boys(最大独立集)
- HDU1068 Girls and Boys 【最大独立集】
- (step6.3.2)hdu 1068(Girls and Boys——二分图的最大独立集)
- 【二分图匹配(最大独立集)】hdu 1068 Girls and Boys