HDU 2063 过山车

Posted prop_jeff

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDU 2063 过山车相关的知识,希望对你有一定的参考价值。

没救了

二分图的最大匹配

#include <iostream>
#include <memory>
using namespace std;

#define MAX 510
int K, M, N;
//X女 Y男
int G[MAX][MAX];
//记录当前男生配对情况
//配给哪个女生
int marry[MAX];
//记录男生访问情况
int visit[MAX];

int findPair(int x) {
    //对应每一个男生
    for (int lop = 0; lop < N; lop++) {
        //没配对或者已访问
        if (!G[x][lop] || visit[lop]) {
            continue;
        }
        visit[lop] = 1;
        //当前男生没配对
        //或者配对的那个女生还能找到配对
        if (marry[lop] == -1 || findPair(marry[lop])) {
            marry[lop] = x;
            return 1;
        }
    }
    return 0;
}

int main() {
    while (cin >> K, K != 0) {
        cin >> M >> N;
        //初始化
        memset(G, 0, sizeof(G));
        memset(marry, -1, sizeof(marry));
        //建立图
        for (int lop = 0; lop < K; lop++) {
            int a, b;
            cin >> a >> b;
            G[a - 1][b - 1] = 1;
        }
        int count = 0;

        //从每一个女生开始找
        for (int lop = 0; lop < M; lop++) {
            memset(visit, 0, sizeof(visit));
            if (findPair(lop)) {
                count++;
            }
        }
        cout << count << endl;
    }
    return 0;
}

 

以上是关于HDU 2063 过山车的主要内容,如果未能解决你的问题,请参考以下文章

HDU——2063 过山车

HDU 2063 过山车(二分图 && 匈牙利 && 最小点覆盖)

hdu2063 过山车二分图匹配

hdu 2063 过山车

HDU 2063 过山车

HDU2063 过山车