poj - 1325 - Machine Schedule(二分图最大匹配)
2013-04-03 01:04
369 查看
题意:A机器有n种作业模式,B机器有m种作业模式,任务i可由A的x模式完成,也可由B的y模式完成,开始时A、B都处在模式0,每切换一种模式都要重启一次机器,问完成k项任务最少需要重启几次机器。
题目链接:http://poj.org/problem?id=1325
——>>将模式看成点,任务看成线,每选一点,与该点为端点的连线就会被吃掉(盖掉),即求最少取多少个点能把所有的线盖掉,实际上就是求二分图的最大匹配数。
~~~由于机器开始时处在模式0,所以与模式0相连的线都不要保存到图中,因为肯定不用重启机器就可将其完成,所以建图时直接不要0点。
题目链接:http://poj.org/problem?id=1325
——>>将模式看成点,任务看成线,每选一点,与该点为端点的连线就会被吃掉(盖掉),即求最少取多少个点能把所有的线盖掉,实际上就是求二分图的最大匹配数。
~~~由于机器开始时处在模式0,所以与模式0相连的线都不要保存到图中,因为肯定不用重启机器就可将其完成,所以建图时直接不要0点。
#include <cstdio> #include <vector> #include <cstring> using namespace std; const int maxn = 200 + 10; vector<int> G[maxn]; bool vis[maxn]; int fa[maxn]; bool dfs(int u) { int d = G[u].size(); for(int i = 0; i < d; i++) { int v = G[u][i]; if(!vis[v]) { vis[v] = 1; int temp = fa[v]; fa[v] = u; if(temp == -1 || dfs(temp)) return 1; fa[v] = temp; } } return 0; } int main() { int n, m, k, i, j, x, y; while(~scanf("%d", &n)) { if(!n) return 0; scanf("%d%d", &m, &k); int sum = n + m; for(i = 0; i < maxn; i++) G[i].clear(); for(j = 0; j < k; j++) { scanf("%d%d%d", &i, &x, &y); if(x && y) { G[x].push_back(y+n); G[y+n].push_back(x); } } memset(fa, -1, sizeof(fa)); for(i = 0; i < sum; i++) { memset(vis, 0, sizeof(vis)); dfs(i); } int cnt = 0; for(i = 0; i < sum; i++) if(fa[i] != -1) cnt++; printf("%d\n", cnt / 2); } return 0; }
相关文章推荐
- poj 1325(二分图最大匹配)
- 【二分图|最大匹配】POJ-1325 Machine Schedule
- POJ 1325 Machine schedine (二分图-最小点覆盖数=最大匹配边数)
- poj1325 二分图最大匹配
- POJ 1325-Machine Schedule(二分图_最大匹配最小点覆盖)
- POJ1325 Machine Schedule 二分图最大匹配
- POJ1325 Machine Schedule 二分图最大匹配
- POJ 1325 Machine Schedule 二分图最大匹配
- 求解二分图的最大匹配的匈牙利算法---POJ 1325 Machine Schedule
- poj 1325 Machine Schedule 二分图最小点覆盖=最大匹配
- POJ 1325 Machine Schedule (最小点覆盖 && 二分图最大匹配)
- POJ 2584 T-Shirt Gumbo (二分图多重最大匹配)
- POJ - 1422 Air Raid 二分图最大匹配
- POJ - 2446 Chessboard 二分图 最大匹配(输入坑)
- POJ 3692Kindergarten(二分图最大匹配之最小顶点匹配)
- Poj(1469),二分图最大匹配
- poj 1274(二分图最大匹配)
- 【二分图多重匹配 && 最短路 && (快)最大流】POJ - 2112 Optimal Milking
- POJ 2289--Jamie's Contact Groups【二分图多重匹配问题 &&二分查找最大值的最小化 && 最大流求解】
- POJ 3189--Steady Cow Assignment【二分图多重匹配 && 最大流求解 && 枚举 && 经典】