zoukankan      html  css  js  c++  java
  • 二分图最大匹配模板 HDU1083

    题目大意:

    P个老师,N个学生,能否达到最大匹配P;

     1 #include<bits/stdc++.h>
     2 #define pb push_back
     3 const int maxn = 300 + 5;
     4 using namespace std;
     5 int P,N;
     6 vector<int> G[maxn];
     7 int linker[maxn];
     8 bool used[maxn];
     9 bool dfs (int u) {
    10     int now ;
    11     for ( int v = 0 ; v < G[u].size() ; v ++ ){
    12         now = G[u][v];
    13         if(!used[now]){
    14             used[now] = true ;
    15             if( linker[now] == -1 || dfs(linker[now]) ){
    16                 linker[now] = u;
    17                 return true ;
    18             }
    19         }
    20     }
    21     return false;
    22 }
    23 int hungary(){
    24     int res = 0;
    25     memset( linker , -1 ,sizeof( linker ));
    26     for ( int u = 1; u <= P ; u++) {
    27          memset ( used , false ,sizeof (used )) ;
    28          if( dfs(u)) res ++ ;
    29     }
    30     return res ;
    31 }
    32 int main () {
    33     int T , tot , v ;
    34     cin >> T;
    35     while (T--) {
    36         cin >> P >> N;
    37         for ( int i = 1 ; i <= P ;i ++) {
    38             cin >> tot ;
    39             for ( int j = 1; j <= tot ; j++){
    40                 cin >> v ;
    41                 G[i].pb (v);
    42             }
    43         }
    44         printf ( "%s
    " ,  hungary() == P ? "YES" : "NO" );
    45         for ( int i = 1; i <= P ; i++ ) G[i].clear();
    46     }
    47     return 0;
    48 }
  • 相关阅读:
    supervisor启动错误解决(二)
    删除文件某行
    离线安装
    docker中/var/lib/docker目录迁移
    if else 使用
    Django views函数添加装饰器
    Netty4
    Fast DFS(二)
    Fast DFS(一)
    SpringBoot和app之间跨域问题
  • 原文地址:https://www.cnblogs.com/poler/p/7475200.html
Copyright © 2011-2022 走看看