• pku 1274 The Perfect Stall


    http://poj.org/problem?id=1274 

    这道题目与1469是一样的,我感觉连输出形式都差不多。只不过这里是牛与什么的匹配,同样,把他们分别用两个集合来保存,然后用匈牙利算法来求得最大匹配数

     1 #include<stdio.h>
    2 #include<string.h>
    3 #include<iostream>
    4 using namespace std;
    5 #define N 210
    6 int map[N][N],m[N],v[N];
    7 int n,mm;
    8 int dfs(int x)
    9 {
    10 int i;
    11 for(i=1;i<=mm;i++)
    12 {
    13 if(!v[i]&&map[x][i])
    14 {
    15 v[i]=1;
    16 if(m[i]==-1||dfs(m[i]))
    17 {
    18 m[i]=x;
    19 return 1;
    20 }
    21 }
    22 }
    23 return 0;
    24 }
    25 int find()
    26 {
    27 int i;
    28 int num=0;
    29 for(i=1;i<=mm;i++)
    30 {
    31 memset(v,0,sizeof(v));
    32 if(dfs(i)) num++;
    33 }
    34 return num;
    35 }
    36 int main()
    37 {
    38 int t,x,i;
    39 while(cin>>n>>mm)
    40 {
    41 memset(map,0,sizeof(map));
    42 memset(m,-1,sizeof(m));
    43 for(i=1;i<=n;i++)
    44 {
    45 cin>>t;
    46 while(t--)
    47 {
    48 cin>>x;
    49 map[i][x]=1;
    50 }
    51 }
    52 int ans=find();
    53 cout<<ans<<endl;
    54 }
    55 return 0;
    56 }
  • 相关阅读:
    动软代码生成器
    today
    命令执行漏洞
    Linux基础命令(二)
    动态主机配置协议DHCP
    Linux基础(一)
    ARP通信
    IP网段的判断
    配置yum源
    centos7-配置阿里yum源安装nginx
  • 原文地址:https://www.cnblogs.com/fxh19911107/p/2383924.html
Copyright © 2020-2023  润新知