• 【HDOJ】1068 Girls and Boys


    匈牙利算法,最开始暴力解不知道为什么就是wa,后来明白,一定要求最优解。查了一下匈牙利算法相关内容,大致了解。

     1 #include <stdio.h>
     2 #include <string.h>
     3 
     4 #define MAXNUM 505
     5 
     6 int map[MAXNUM][MAXNUM];
     7 int visit[MAXNUM];
     8 int link[MAXNUM];
     9 
    10 int dfs(int x, int n) {
    11     int i;
    12 
    13     for (i=0; i<n; ++i) {
    14         if (visit[i]==0 && map[x][i]) {
    15             visit[i] = 1;
    16             if (link[i]==-1 || dfs(link[i], n)) {
    17                 link[i] = x;
    18                 return 1;
    19             }
    20         }
    21     }
    22     return 0;
    23 }
    24 
    25 int main() {
    26     int n, reln, tmp;
    27     int i, j, k;
    28 
    29     while (scanf("%d", &n) != EOF) {
    30         memset(map, 0, sizeof(map));
    31         memset(link, -1, sizeof(link));
    32         for (i=0; i<n; ++i) {
    33             scanf("%d: (%d)", &k, &reln);
    34             for (j=0; j<reln; ++j) {
    35                 scanf("%d", &tmp);
    36                 map[k][tmp] = 1;
    37             }
    38         }
    39         tmp = 0;
    40         for (i=0; i<n; ++i) {
    41             memset(visit, 0, sizeof(visit));
    42             if ( dfs(i, n) )
    43                 tmp++;
    44         }
    45         if (tmp&1)
    46             tmp++;
    47         printf("%d
    ", n-tmp/2);
    48     }
    49 
    50     return 0;
    51 }
  • 相关阅读:
    windows下安装mysql教程
    git基本操作
    JDK8,Optional
    重新安装MySQL 8出现的问题
    HTML5学习:缩略图
    HTML5学习:表格
    MySQL常用命令
    Django学习:创建admin后台管理站点
    Django学习:连接Mysql数据库
    Django学习:创建第一个app
  • 原文地址:https://www.cnblogs.com/bombe1013/p/3641738.html
Copyright © 2020-2023  润新知