HDU 2063 过山车(二分图最大匹配问题)
2012-07-16 20:36
225 查看
/* 基础的二分图最大匹配问题 */ #include <iostream> using namespace std; const int nMax = 505; int map[nMax][nMax];//存储男女匹配模式 int link[nMax];//与第i个女生相匹配的男生 int useif[nMax];//是否被访问 int K, M, N; bool can(int t) { for(int i = 1; i <= N; ++ i) { if(!useif[i] && map[t][i]) { useif[i] = 1; if(link[i] == -1 || can(link[i]))//检查link[i]是否存在另外的匹配 { link[i] = t; return 1; } } } return 0; } int main() { //freopen("f://data.in", "r", stdin); while(1) { scanf("%d", &K); if(K == 0) break; scanf("%d%d", &M, &N); memset(map, 0, sizeof(map)); memset(link, -1, sizeof(link)); for(int i = 0; i < K; ++ i) { int u, v; scanf("%d%d", &u, &v); map[u][v] = 1; } int num = 0; for(int i = 1; i <= M; ++ i) { memset(useif, 0, sizeof(useif)); if(can(i)) ++ num;//对M个女生进行查找增广轨 } printf("%d\n", num); } return 0; }
相关文章推荐
- HDU 2063 过山车(模板—— 二分图最大匹配问题)
- HDU 2063 过山车(二分图最大匹配问题,匈牙利算法)
- HDU 2063 过山车(二分图最大匹配问题+最大流 超时解法)
- HDU 2063 过山车(二分图最大匹配:简单题)
- HDU:2063 过山车(二分图最大匹配)
- HDU 2063 过山车【二分图最大匹配】
- hdu 2063 过山车(二分图最大匹配)
- hdu 2063 过山车(二分图最大匹配,2级)
- hdu 2063 过山车(二分图最大匹配,2级)
- 【HDU 2063】过山车(二分图最大匹配模板题)
- HDU 2063 过山车 (二分图的最大匹配)
- Hdu2063—过山车 二分图最大匹配
- hdu 2063 过山车 ( 二分图最大匹配水过 .)
- (step6.3.1)hdu 2063(过山车——二分图的最大匹配)
- hdu 2063 过山车(二分图最大匹配基础)
- hdu 2063 过山车(二分图最大匹配)
- [HDU] 2063 过山车(二分图最大匹配)
- HDU 2063 过山车(匈牙利算法)(二分图求最大匹配)
- 匈牙利算法,二分图最大基数匹配(过山车,hdu 2063)
- HDU 2063 过山车 匈牙利二分图最大匹配