zoukankan      html  css  js  c++  java
  • POJ 1466 二分图最大独立集.cpp

    题意:

    给出了男女之间的暧昧关系..求解有多少人之间是没有暧昧关系的..

    先给n表示有n个同学

    然后 同学a:(暧昧关系人数m) 暧昧关系同学1 暧昧关系同学2 暧昧同学3 ... 

    思路:

    求出最大独立集..

     

    Tips:

    有向图:最大独立集 = n-最大匹配

    无向图:最大独立集 = n-最大匹配/2

    Code:

    View Code
     1 #include <stdio.h>
     2 #include <cstring>
     3 #define clr(x) memset(x, 0, sizeof(x))
     4 const int INF = 0x1f1f1f1f;
     5 
     6 struct Edge
     7 {
     8     int next;
     9     int to;
    10 }edge[1000000];
    11 int tot;
    12 int head[510];
    13 
    14 void add(int s, int u)
    15 {
    16     edge[tot].to = u;
    17     edge[tot].next = head[s];
    18     head[s] = tot++;
    19 }
    20 
    21 int link[510];
    22 int vis[510];
    23 int sum, n;
    24 
    25 int dfs(int x)
    26 {
    27     for(int i = head[x]; i != -1; i = edge[i].next){
    28         int y = edge[i].to;
    29         if(!vis[y]){
    30             vis[y] = true;
    31             if(link[y] == 0 || dfs(link[y])){
    32                 link[y] = x;
    33                 return true;
    34             }
    35         }
    36     }
    37     return false;
    38 }
    39 
    40 void solve()
    41 {
    42     clr(link);
    43     sum = 0;
    44     for(int i = 0; i < n; ++i){
    45         clr(vis);
    46         if(dfs(i))
    47             sum++;
    48     }
    49 }
    50 
    51 int main()
    52 {
    53     int i, j, k;
    54     int a, b, m;
    55     while(scanf("%d", &n) != EOF)
    56     {
    57         memset(head, 0xff, sizeof(head));
    58         for(i = 0; i < n; ++i) {
    59             scanf("%d: (%d)", &a, &m);
    60             while(m--) {
    61                 scanf("%d", &b);
    62                 add(a, b);
    63             }
    64         }
    65 
    66         solve();
    67 
    68         printf("%d\n", n-sum/2);
    69     }
    70     return 0;
    71 }

     

  • 相关阅读:
    命令行工具解析Crash文件,dSYM文件进行符号化
    我最常用的几个Xcode快键键
    Send push notification on Apple (APNS) on c#.net
    iOS安全笔记
    el captain设置环境变量
    做一个会使用PS的前端开发
    这些HTML、CSS知识点,面试和平时开发都需要 No1-No4
    Node.js
    CSS面试题
    HTML面试题
  • 原文地址:https://www.cnblogs.com/Griselda/p/2682745.html
Copyright © 2011-2022 走看看