zoukankan      html  css  js  c++  java
  • POJ 1466 Girls and Boys【最大点独立集】

    大意:最大点独立集

    分析:最大点独立集

    代码:

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstring>
     4 #include <vector>
     5 using namespace std;
     6 
     7 const int maxn = 505;
     8 
     9 int n;
    10 int Link[maxn];
    11 int vis[maxn];
    12 vector<int> G[maxn];
    13 bool Find(int u) {
    14     for(int i = 0; i < G[u].size(); i++) {
    15         int v = G[u][i];
    16         if(!vis[v]) {
    17             vis[v] = 1;
    18             if(Link[v] == -1 || Find(Link[v])) {
    19                 Link[v] = u;
    20                 return true;
    21             }
    22         }
    23     }
    24     return false;
    25 }
    26 
    27 int solve() {
    28     memset(Link, -1, sizeof(Link));
    29     int ans = 0;
    30     for(int i = 0; i < n; i++) {
    31         if(G[i].size()) {
    32             memset(vis, 0, sizeof(vis));
    33             if(Find(i)) ans ++;
    34         }
    35     }
    36     return ans;
    37 }
    38 
    39 int main() {
    40     int a, num, b;
    41     while(EOF != scanf("%d",&n)) {
    42         for(int i = 0; i < n; i++) {
    43             G[i].clear();
    44         }
    45         for(int i = 0; i < n; i++) {
    46             scanf("%d: (%d)", &a, &num);
    47             for(int j = 0; j < num; j++) {
    48                 scanf("%d",&b);
    49                 G[a].push_back(b);
    50             }
    51         }
    52         printf("%d
    ", ( 2 * n - solve() ) / 2 );
    53     }
    54     return 0;
    55 }
    View Code
  • 相关阅读:
    【面试题】M
    【转】C/S,B/S区别
    【转】指针和引用的区别
    内联函数
    实习-随记
    【面试】http协议知识
    wenbenfenlei
    【面试】链表反转
    测试面试题2
    测试面试题
  • 原文地址:https://www.cnblogs.com/zhanzhao/p/3940436.html
Copyright © 2011-2022 走看看