zoukankan      html  css  js  c++  java
  • HDU 2603 二分匹配

    #include <queue>
    #include <vector>
    #include <cstdio>
    #include <cstring>
    #include <iostream>
    #include <algorithm>
    using namespace std;

    const int N = 510;
    int maps[N][N], visit[N], used[N];
    int n, m;
    bool Find(int u)//女生u
    {
    for(int i=1; i<=n; i++)
    {
    if(!visit[i]&&maps[u][i])//i男生
    {
    visit[i]=1;
    if(!used[i]||Find(used[i]))
    {
    used[i]=u;
    return true;
    }
    }
    }
    return false;
    }
    int main()
    {
    int k;
    while(scanf("%d", &k), k)
    {
    scanf("%d%d", &m, &n);
    memset(maps, 0, sizeof(maps));
    while(k--)
    {
    int a, b;
    scanf("%d%d", &a, &b);
    maps[a][b]=1;//有伴
    }//used[i]表示第i个男生和used[i]女生作伴
    memset(used, 0, sizeof(used));
    int ans=0;
    for(int i=1; i<=m; i++)
    {
    //visit[i]表示i男生有没有被增广过
    memset(visit, 0, sizeof(visit));
    if(Find(i))
    ans++;
    }
    printf("%d ", ans);
    }
    return 0;
    }

  • 相关阅读:
    django的用户认证模块(auth)
    算法
    图书管理系统
    mac系统中pycharm激活
    mac常见问题
    mysql安装
    restful规范及DRF基础
    MySQL存储引擎
    [python] with statement
    MySQL索引及执行计划
  • 原文地址:https://www.cnblogs.com/wazqWAZQ1/p/4712629.html
Copyright © 2011-2022 走看看