zoukankan      html  css  js  c++  java
  • 【模板/学习】匈牙利算法

    P3386 【模板】二分图匹配

    有段时间老是搜匈牙利算法, 百度给我推荐匈牙利旅游匈牙利移民可还行

    一直也没有打过, 所以对匈牙利算法的认识一直停留在社会主义分老婆上

    直接帖板子啦qwq随手一搜匈牙利算法讲解都很好一定要有图的那种, 一般左边是汉子右边是妹子最后一个是凤姐

    代码是和《进阶指南》上学的, 但我用的邻接表存图qwq

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<iostream>
     4 using namespace std;
     5 const int sz = 1010;
     6 int num = 0, n, m, edg, ans = 0;
     7 int head[sz], match[sz];
     8 bool vis[sz];
     9 struct edge {
    10     int nxt, to;
    11 }e[sz << 1];
    12 void add(int from, int to) {
    13     e[++num].nxt = head[from];
    14     e[num].to = to;
    15     head[from] = num;
    16 }
    17 bool dfs(int x) {
    18     for(int i = head[x]; i; i = e[i].nxt) {
    19         int y = e[i].to;
    20         if(!vis[y]) {
    21             vis[y] = 1;
    22             if(!match[y] || dfs(match[y])) {
    23                 match[y] = x;
    24                 return true;
    25             }
    26         }
    27     }
    28     return false;
    29 }
    30 int main() {
    31     scanf("%d%d%d", &n, &m, &edg);
    32     for(int i = 1; i <= edg; i++) {
    33         int u, v;
    34         scanf("%d%d", &u, &v);
    35         if(v > m) continue;
    36         add(u, v);
    37     }
    38     for(int i = 1; i <= n; i++) {
    39         memset(vis, 0, sizeof(vis));
    40         if(dfs(i)) ans++;
    41     }
    42     printf("%d", ans);
    43     return 0;
    44 }
  • 相关阅读:
    centos mongodb
    CentOS YUM 安装 TOMCAT6
    Linux切换工作目录命令:cd
    CentOS中JAVA_HOME的环境变量设置
    用Navicat for MySQL 连接 CentOS 6.5
    CentOS上开启MySQL远程访问权限
    centos7下yum安装mysql
    long数值 转换为时间
    安卓开发_浅谈AsyncTask
    ScrollView与ListView的事件冲突
  • 原文地址:https://www.cnblogs.com/Hwjia/p/9898099.html
Copyright © 2011-2022 走看看