zoukankan      html  css  js  c++  java
  • poj 1466

    二分图的水题,第一次写;

    基本上是参考的 = = !

    代码:

     1 #include<cstdio>
     2 #include<vector>
     3 #include<cstring>
     4 #define maxn 2005
     5 using namespace std;
     6 
     7 vector<int>ve[maxn];
     8 int match[maxn];
     9 bool v[maxn];
    10 
    11 int dfs(int x)
    12 {
    13     int l=ve[x].size();
    14     for(int i=0; i<l; i++)
    15     {
    16         int k=ve[x][i];
    17         if(!v[k])
    18         {
    19             v[k]=1;
    20             if(match[k]==-1||dfs(match[k]))
    21             {
    22                 match[k]=x;
    23                 return 1;
    24             }
    25         }
    26     }
    27     return 0;
    28 }
    29 
    30 int main()
    31 {
    32     int n,m,a,b,num,ans;
    33     while(scanf("%d",&n)!=EOF)
    34     {
    35         ans=0;
    36         memset(match,-1,sizeof match);
    37         for(int i=0; i<n; i++)
    38             ve[i].clear();
    39         for(int i=0; i<n; i++)
    40         {
    41             scanf("%d: (%d)",&a,&num);
    42             while(num--)
    43             {
    44                 scanf("%d",&b);
    45                 ve[a].push_back(b);
    46             }
    47         }
    48         for(int i=0; i<n; i++)
    49         {
    50             memset(v,0,sizeof v);
    51             ans+=dfs(i);
    52         }
    53         printf("%d
    ",n-ans/2);
    54     }
    55     return 0;
    56 }
    View Code
  • 相关阅读:
    Fiddler工具抓包
    简单Ant打包
    android中ActionBar的几个属性
    yum安装php7.2
    java 获取计算机内存
    docker apache安装
    docker 安装 openresty
    docker 安装nginx
    docker安装gitlab
    java获取时间格式
  • 原文地址:https://www.cnblogs.com/yours1103/p/3312644.html
Copyright © 2011-2022 走看看