
二分图
stdwal
天演在化,功成在学。知海无涯,见花问道。
展开
-
POJ2112-Optimal Milking
二分最大流答案,注意上界是INF而不是200.#include <cstdio>#include <cstring>#include <vector>#include <queue>#include <algorithm>using namespace std;const int maxk = 30 + 5;const int maxc = 200 + 5;const int maxv =原创 2016-10-31 22:33:22 · 358 阅读 · 0 评论 -
POJ3041-Asteroids
把所有点的x,y坐标作为二分图的U和V,并将这个问题转化为寻找二分图的最小顶点覆盖。 对于二分图而言,|最大匹配| = |最小顶点覆盖|。#include <iostream>#include <cstring>#include <vector>using namespace std;const int maxn = 1000 + 10;int n;vector<int> G[maxn];原创 2016-10-11 17:31:23 · 245 阅读 · 0 评论 -
POJ3281-Dining
按照食物,牛,饮料并自定源点s和汇点t建图,用最大流求解。 图中牛的节点为2 * n个,这样能使每头牛最多一份食物一份饮料。#include <cstdio>#include <cstring>#include <queue>#include <vector>#include <algorithm>using namespace std;const int maxn = 100 + 5;原创 2016-10-14 18:35:51 · 262 阅读 · 0 评论 -
POJ1274-The Perfect Stall
裸的二分图匹配问题。 两种做法,第一种是建图转换成最大流流的问题求解,另一种直接用二分图匹配模板。 最大流:#include <cstdio>#include <cstring>#include <vector>#include <queue>#include <algorithm>using namespace std;const int maxn = 400 + 5;const l原创 2016-10-30 21:38:01 · 249 阅读 · 0 评论 -
POJ1466-Girls and Boys
好纯洁的题目呀! 求最大独立集,用顶点数减去二分图最大匹配即可。#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_e原创 2016-11-01 20:06:47 · 339 阅读 · 0 评论 -
POJ3629-Kindergarten
一个幼儿园里女生相互认识,男生也相互认识,另外有些男生女生相互认识,老师要带一群相互认识的孩子,问最大数量。 由于女生相互认识,男生相互认识,因此这个图的补图一定为二分图,于是就把这个图转换而求补图的最大独立集。 补图中不认识就代表了在原图中相互认识。#include <cstdio>#include <cstring>#include <vector>const int maxn = 20原创 2016-11-01 21:12:14 · 554 阅读 · 0 评论 -
Ural1106-Two Teams
二分图染色。#include <cstdio>#include <cstring>#include <cctype>#include <vector>using namespace std;const int maxn = 105;vector<int> G[maxn];vector<int> U;int mark[maxn];void dfs(int v) { if (mark[v原创 2016-11-17 20:28:30 · 420 阅读 · 0 评论