zoukankan      html  css  js  c++  java
  • POJ1469

    二分图的最大匹配模板题

     1 #include <cstdio>
     2 #include <iostream>
     3 #include <string.h>
     4 using namespace std;
     5 bool map[105][305],vis[305],flag;
     6 int match[305];
     7 int p,n;
     8 bool dfs(int a){
     9     for(int i=1;i<=n;i++){
    10         if(map[a][i]&&!vis[i]){
    11             vis[i]=1;
    12             if(match[i]==-1||dfs(match[i])){
    13                 match[i]=a;
    14                 return true;
    15             }
    16         }
    17     }
    18     return false;
    19 }
    20 int main(){
    21     int t,ans,k,a;
    22     scanf("%d",&t);
    23     while(t--){
    24         flag=1;
    25         memset(map,false,sizeof(map));
    26         memset(match,-1,sizeof(match));
    27         scanf("%d%d",&p,&n);
    28         for(int i=1;i<=p;i++){
    29             scanf("%d",&k);
    30             if(!k)flag=0;
    31             while(k--){
    32                 scanf("%d",&a);
    33                 map[i][a]=1;
    34             }
    35         }
    36         if(flag){
    37             ans=0;
    38             for(int i=1;i<=p;i++){
    39                 memset(vis,false,sizeof(vis));
    40                 if(dfs(i))ans++;
    41             }
    42             if(ans==p)puts("YES");
    43             else puts("NO");
    44         }
    45         else puts("NO");
    46     }
    47     return 0;
    48 }
  • 相关阅读:
    团队冲刺第二阶段2
    团队冲刺第二阶段1
    第十二周总结
    团队游戏
    三个和尚
    第十一周总结
    第十周总结
    调用摄像头拍照
    怎样从相册中选择照片?
    怎样插入并播放音频?
  • 原文地址:https://www.cnblogs.com/Mr-Xu-JH/p/4356175.html
Copyright © 2011-2022 走看看