• HDU 2063 过山车( 最大匹配 )


    题意:中文
    思路:最大匹配

    #include<cstdio>
    #include<iostream>
    #include<algorithm>
    #include<cmath>
    #include<set>
    #include<map>
    #include<string>
    #include<cstring>
    #include<stack>
    #include<queue>
    #include<vector>
    #include<limits>
    #include<ctime>
    #include<cassert>
    #include<cstdlib>
    #define lson (rt<<1),L,M
    #define rson (rt<<1|1),M+1,R
    #define M ((L+R)>>1)
    #define cl(a,b) memset(a,b,sizeof(a));
    #define LL long long
    #define P pair<int,int>
    #define X first
    #define Y second
    #define pb push_back
    #define fread(a) freopen(a,"r",stdin);
    #define fwrite(a) freopen(a,"w",stdout);
    using namespace std;
    const int maxn=505;
    const int inf=999999;
    
    vector<int> G[maxn];
    int matching[maxn];
    bool vis[maxn];
    int num;
    bool dfs(int u){
        int N=G[u].size();
        for(int i=0;i<N;i++){
            int v=G[u][i];
            if(vis[v])continue;
            vis[v]=true;
            if(matching[v]==-1||dfs(matching[v])){
                matching[v]=u;
                return true;
            }
        }
        return false;
    }
    int hungar(){
        int ans=0;
        cl(matching,-1);
        for(int i=0;i<num;i++){
            cl(vis,false);
            if(dfs(i))ans++;
        }
        return ans;
    }
    
    
    int main(){
        int n,m,k;
        while(~scanf("%d",&k)&&k){
            scanf("%d%d",&m,&n);
            for(int i=0;i<maxn;i++)G[i].clear();
            while(k--){
                int x,y;
                scanf("%d%d",&x,&y);
                x--;y--;
                G[x].pb(y);
            }
            num=max(n,m);
            printf("%d
    ",hungar());
    
        }
        return 0;
    }
    
    
    
    
    
  • 相关阅读:
    #Leetcode# 21. Merge Two Sorted Lists
    #Leetcode# 118. Pascal's Triangle
    #LeetCode# 136. Single Number
    #Leetcode# 26. Remove Duplicates from Sorted Array
    #LeetCode# 167. Two Sum II
    #Leetcode# 58. Length of Last Word
    #LeetCode# 35. Search Insert Position
    POJ 2492 J-A Bug's Life
    #Leetcode# 27. Remove Element
    【前端】.easyUI.c#
  • 原文地址:https://www.cnblogs.com/mthoutai/p/7053116.html
Copyright © 2020-2023  润新知