• 二分图最大匹配模板 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 }
  • 相关阅读:
    Python之datetime模块
    PEP8规范 Python
    redis操作命令
    Django之Cookie、Session和自定义分页
    登录之验证码相关实现
    装饰器进阶
    js中的cookie使用和vue-cookie的使用
    vue-cli的安装使用
    Django之进阶相关操作
    PyMySQL模块的使用
  • 原文地址:https://www.cnblogs.com/poler/p/7475200.html
Copyright © 2020-2023  润新知