zoukankan      html  css  js  c++  java
  • Tracer Deployment UVALive

    复习二分图又想起了这道题,裸的二分图匹配,直接匈牙利算法就可以了,mark一下这个比较好用的稠密图匈牙利算法模板

    题目:题目链接

    AC代码:

    #include <iostream>
    #include <cstdio>
    #include <cstdlib>
    #include <algorithm>
    #include <cstring>
    #include <vector>
    #include <string>
    #include <queue>
    #include <map>
    #include <set>
    
    #define FRER() freopen("in.txt", "r", stdin);
    #define INF 0x3f3f3f3f
    
    using namespace std;
    
    const int MAXN = 25;
    int n, m, k;
    int g[MAXN][MAXN], num[MAXN];
    bool vis[MAXN];
    
    bool find(int);
    int hungury();
    
    int main()
    {
        //FRER()
        ios::sync_with_stdio(0);
        cin.tie(0);
        int u, v;
        while(cin >> n && n) {
            cin >> m >> k;
            memset(g, 0, sizeof(g));
            while(k--) {
                cin >> u >> v;
                g[u][v] = 1;
            }
            cout << hungury() << endl;
        }
        return 0;
    }
    
    bool find(int u) {
        for(int v = 0; v < m; ++v) {
            if(g[u][v] && !vis[v]) {
                vis[v] = true;  //标记该点在本次匹配中已被尝试修改过
                if(num[v] == -1 || find(num[v])) {
                    num[v] = u;
                    return true;
                }
            }
        }
        return false;
    }
    
    int hungury() {
        int ans = 0;
        memset(num, -1, sizeof(num));
        for(int i = 0; i < n; ++i) {
            memset(vis, false, sizeof(vis));
            if(find(i)) ++ans;
        }
        return ans;
    }
    版权声明:该博客版权归本人所有,若有意转载,请与本人联系
  • 相关阅读:
    瀑布流
    进度条
    图片延迟加载、scroll
    scroll 滚动广告
    json
    样式更改
    js 不同浏览器的宽度获取
    孤立点挖掘算法
    数据结构算法代码
    深入浅出JMS(一)--JMS基本概念
  • 原文地址:https://www.cnblogs.com/fan-jiaming/p/9785998.html
Copyright © 2011-2022 走看看