HDOJ2063(匈牙利算法模板题)

来源:互联网 发布:0基础学通c语言 编辑:程序博客网 时间:2024/06/06 15:04

//dalao详解:  http://blog.csdn.net/dark_scope/article/details/8880547


#include <iostream> #include <cstring>#include <string>#include <cstdio>#include <algorithm>#include <stack>#include <math.h>#include<iostream>using namespace std;#define INF  0xfffff;//0x代表十六进制int line[510][510];int boy[510];int used[510];bool cacu(int now, int n){for (int i = 1; i <= n; i++){if (line[now][i] && !used[i])  //跟他有关系而且没有搜索过{used[i] = 1;if (!boy[i] || cacu(boy[i], n)) //男孩没有伴侣 或已顺延到伴侣{boy[i] = now;return true;}}}return false;}int main(){int k, m, n;while (cin >> k >> m >> n, k){memset(line, 0, sizeof(line));memset(boy, 0, sizeof(boy));for (int i = 1; i <= k; i++){int n1, n2;cin >> n1 >> n2;line[n1][n2] = 1;}int sum = 0;for (int i = 1; i <= m; i++){memset(used, 0, sizeof(used));if (cacu(i, n)) sum++;}cout << sum << endl;}}


原创粉丝点击