zoukankan      html  css  js  c++  java
  • 网络流24题 第一题

    欢迎访问~原文出处——博客园-zhouzhendong

    去博客园看该题解

    题目传送门

    题意概括

    裸的二分图匹配

    题解

    匈牙利算法

    上板子

    代码

    #include <cstring>
    #include <cstdio>
    #include <algorithm>
    #include <cstdlib>
    #include <cmath>
    using namespace std;
    const int N=100+5;
    int m,n,a,b,match[N],x[N],y[N];
    bool g[N][N],vis[N];
    bool dfs(int k){
        for (int i=1;i<=n;i++)
            if (g[k][i]&&!vis[i]){
                vis[i]=1;
                if (match[i]==-1||dfs(match[i])){
                    match[i]=k;
                    return 1;
                }
            }
        return 0;
    }
    int main(){
        memset(g,0,sizeof g);
        scanf("%d%d",&m,&n);
        while (scanf("%d%d",&a,&b)&&(a!=-1&&b!=-1))
            g[a][b]=g[b][a]=1;
        memset(match,-1,sizeof match);
        int cnt=0;
        for (int i=1;i<=n-m;i++){
            memset(vis,0,sizeof vis);
            if (dfs(i+m))
                cnt++;
        }
        int tot=0;
        for (int i=1;i<=m;i++)
            if (match[i]!=-1)
                x[++tot]=i,y[tot]=match[i];
        if (tot==0)
            printf("No Solution!");
        else
            printf("%d
    ",tot);
        for (int i=1;i<=tot;i++)
            printf("%d %d
    ",x[i],y[i]);
        return 0;
    }
  • 相关阅读:
    Xaml下
    Xmal
    ItemTemplate
    spring aop
    Struts2
    jsp的标签库
    数据库连接池
    request初探
    kubectl 命令大全
    win10常见问题归总
  • 原文地址:https://www.cnblogs.com/zhouzhendong/p/LuoguP2756.html
Copyright © 2011-2022 走看看