zoukankan      html  css  js  c++  java
  • hdu 1054 最小点覆盖

    Sample Input
    4
    0:(1) 1
    1:(2) 2 3
    2:(0)
    3:(0)
    5
    3:(3) 1 4 2
    1:(1) 0
    2:(0)
    0:(0)
    4:(0)
     
    Sample Output
    1
    2

    最小点覆盖=最大匹配数

    水题,懒的拍了

     1 #include<stdio.h>
     2 #include<iostream>
     3 #include<algorithm>
     4 #include<string.h>
     5 #include<vector>
     6 using namespace std;
     7 const int MAXN=1505;
     8 int linker[MAXN];
     9 bool used[MAXN];
    10 vector<int>map[MAXN];
    11 int uN;
    12 bool dfs(int u)
    13 {
    14     for(int i=0;i<map[u].size();i++)
    15     {
    16         if(!used[map[u][i]])
    17         {
    18             used[map[u][i]]=true;
    19             if(linker[map[u][i]]==-1||dfs(linker[map[u][i]]))
    20             {
    21                 linker[map[u][i]]=u;
    22                 return true;
    23             }
    24         }
    25     }
    26     return false;
    27 }
    28 int hungary()
    29 {
    30     int u;
    31     int res=0;
    32     memset(linker,-1,sizeof(linker));
    33     for(u=0;u<uN;u++)
    34     {
    35         memset(used,false,sizeof(used));
    36         if(dfs(u)) res++;
    37     }
    38     return res;
    39 }
    40 int main()
    41 {
    42     int u,k,v;
    43     int n;
    44     while(scanf("%d",&n)!=EOF)
    45     {
    46         for(int i=0;i<MAXN;i++)
    47            map[i].clear();
    48         for(int i=0;i<n;i++)
    49         {
    50             scanf("%d:(%d)",&u,&k);
    51             while(k--)
    52             {
    53                 scanf("%d",&v);
    54                 map[u].push_back(v);
    55                 map[v].push_back(u);
    56             }
    57         }
    58         uN=n;
    59         printf("%d
    ",hungary()/2);
    60     }
    61     return 0;
    62 }
  • 相关阅读:
    linux | 一次网卡故障处理
    KVM | centos 安装 window 虚拟机
    DNS | named.run文件很大的处理方法
    01
    802.11X用户身份验证
    802.11有线等效加密WEP
    802.11成帧细节
    802.11 MAC基础
    【转载】我为什么放弃了 Linux 内核学习?
    Linux网络编程(一):一个简单的socket程序
  • 原文地址:https://www.cnblogs.com/cnblogs321114287/p/4314551.html
Copyright © 2011-2022 走看看