zoukankan      html  css  js  c++  java
  • 匈牙利算法模板&nyoj239

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 vector<int> v[510];
     4 int match[510];
     5 int check[510];
     6 int n, k;
     7 int dfs(int x)
     8 {
     9     for(int i = 0; i < v[x].size(); i++)
    10     {
    11         int t = v[x][i];
    12         if (check[t] == 0)
    13         {
    14             check[t] = 1;
    15             if(match[t] == 0 || dfs(match[t]))
    16             {
    17                 match[t] = x;
    18                 return 1;
    19             }
    20         }
    21     }
    22     return 0;
    23 }
    24 void init()
    25 {
    26     for(int i = 0; i <= n; i++)
    27         v[i].clear();
    28     memset(match, 0, sizeof(match));
    29 }
    30 int hungarian()
    31 {
    32     int sum = 0;
    33     for(int i = 1; i <= n; i++)
    34     {
    35         memset(check, 0, sizeof(check));
    36         if(dfs(i))
    37             sum++;
    38     }
    39     return sum;
    40 }
    41 int main()
    42 {
    43     int t;
    44     scanf("%d", &t);
    45     while(t--)
    46     {
    47         init();
    48         scanf("%d%d", &n, &k);
    49         int s, e;
    50         for(int i = 0; i < k; i++)
    51         {
    52             scanf("%d%d", &s, &e);
    53             v[s].push_back(e);
    54         }
    55         printf("%d
    ", hungarian());
    56     }
    57 }
  • 相关阅读:
    LSTM
    Realsense D435i
    ubuntu18 realsenseD435i
    net
    test
    LSTM Accuracy
    boost x64 lib
    E0443类模板 "std::unordered_set" 的参数太多
    PropertySheet
    freetype 编译
  • 原文地址:https://www.cnblogs.com/kearon/p/7356405.html
Copyright © 2011-2022 走看看