POJ1466-Girls and Boys
2016-11-01 20:06
239 查看
好纯洁的题目呀!
求最大独立集,用顶点数减去二分图最大匹配即可。
求最大独立集,用顶点数减去二分图最大匹配即可。
#include <cstdio> #include <cctype> #include <vector> const int maxv = 1000 + 5; char s[maxv]; int n; std::vector<int> G[maxv]; int match[maxv]; bool used[maxv]; void add_edge(int u, int v) { G[u].push_back(v); G[v].push_back(u); } bool dfs(int v) { used[v] = true; for (int i = 0; i < G[v].size(); i++) { int u = G[v][i], w = match[u]; if (w < 0 || (!used[w] && dfs(w))) { match[v] = u; match[u] = v; return true; } } return false; } int Hungarian() { int res = 0; memset(match, -1, sizeof(match)); for (int v = 0; v < n; v++) { if (match[v] < 0) { memset(used, 0, sizeof(used)); if (dfs(v)) { res++; } } } return res; } int main() { while (scanf("%d", &n) == 1) { getchar(); for (int i = 0; i < n; i++) { int v, m, u; scanf("%d: (%d)", &v, &m); for (int j = 0; j < m; j++) { scanf("%d", &u); add_edge(u, v); } } printf("%d\n", n - Hungarian()); for (int i = 0; i < n; i++) { G[i].clear(); } } return 0; }
相关文章推荐
- POJ 1466 Girls and Boys
- POJ 1466 Girls and Boys
- poj 1466 Girls and Boys
- POJ 1466 Girls and Boys (ZOJ 1137 )最大独立点集
- 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 最大独立集
- zoj 1137 Girls and Boys(poj 1466)(最大独立点集)
- POJ 1466 Girls and Boys(匈牙利算法—最大独立集)
- 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【二分图_最大独立集】
- poj1466 - Girls and Boys
- poj 1466 Girls and Boys (最大独立)
- POJ 1466 Girls and Boys (ZOJ 1137 )最大独立点集
- poj&nbsp;1466&nbsp;Girls&nbsp;and&nbsp;Boys(最大独立…