题目大概意思即求一个点集,使男女互没关系

求两两互不相交的顶点集合,即求独立集
有公式 : |最大独立集| + |最小顶点覆盖| = |所有点集合|

又由于所有边连接男和女,所以为二分图
二分图问题中 : |最大匹配| = |最小顶点覆盖|
所以求 : |最大独立集| = |所有点集合| - |最大匹配|

先二分图匹配,然后用顶点数减去匹配数即可(基础题)

#include <stdio.h>
#include <iostream>
#include <vector>
#include <string.h>
using namespace std;
int match[505];
bool used[505];
vector<int> data[505];
void add_edge(int from, int to)
{data[from].push_back(to);
}
bool dfs(int v)
{used[v] = true;for(int i = 0; i < data[v].size(); i++){int u = data[v][i], w = match[u];if(w == -1 || !used[w] && dfs(w)){match[v] = u;match[u] = v;return true;}}return false;
}
int main()
{int N;while(~scanf("%d", &N)){for(int i = 0; i < N; i++){data[i].clear();}for(int i = 0; i < N; i++){int n, from, to;scanf("%d: (%d)", &from, &n);for(int i = 0; i < n; i++){scanf("%d", &to);add_edge(from, to);}}int res = 0;memset(match, -1, sizeof(match));for(int i = 0; i < N; i++){memset(used, false, sizeof(used));if(match[i] < 0 && dfs(i)){res++;}}printf("%d\n", N - res);}
}

poj1466(二分图最大独立集)相关推荐

  1. 最小割 ---- 二分图最大独立集(集合冲突模型) ---- 骑士共存 方格取数(网络流24题)

    二分图独立集 定理: 二分图最大独立集=n - 二分图最大匹配 其实二分图独立集是特殊的一种最大权闭合子图.我们根据上文"收益"的思想,把选某个点的收益看为1,左部节点为正权点,右 ...

  2. 洛谷 - P3355 骑士共存问题(二分图最大独立集)

    题目链接:点击查看 题目大意:给出一个n*n的棋盘,上面有m个点无法放置棋子,现在要求尽可能多的放 马,使得所有的马两两无法互相攻击,题目要求输出可以放置的最大数量 题目分析:二分图最大独立集的裸题, ...

  3. CH - 6901 骑士放置(二分图最大独立集-二分图最大匹配+奇偶拆点)

    题目链接:点击查看 题目大意:给出一个n*m的棋盘,有t个点是禁止放棋子的,现在按照马走日的规则,问在互不影响的情况下最多能放多少个马 题目分析:这里首先简单介绍一下二分图最大独立集的定义: 通俗来讲 ...

  4. [二分图最大独立集] BZOJ4808:马

    棋盘01染色,然后把互相能打到的点连边,发现是个二分图. 二分图最大独立集 == 点数 −- 最大匹配数 Dinic练手- #include<cstdio> #include<que ...

  5. 二分图HK算法[数论+二分图最大独立集]:Lightoj1356

    Prime Independence LightOJ - 1356 题目大意:给你n个数,你从这个集合中挑选出若干个数,使得这个集合的数里面两两之间a/b!=k[k是质数并且a>b]a/b!=k ...

  6. poj3692(二分图最大独立集)

    题目大概意思为有G个女生和B个男生,每个男生都相互认识,每个女生也相互认识,部分男生与部分女生相互认识,求最大相互认识的点集 题目很简单,只用稍微转换一下思路即可,因为我们要以男生与女生来构建二分图, ...

  7. hdu 1068(二分图最大独立集)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1068 解题思路: 这题大概意思就是说找出一个最大的集合使得该集合的任意两个人木有关系. 根据最大独立集 ...

  8. 【LA3415 训练指南】保守的老师 【二分图最大独立集,最小割】

    题意 Frank是一个思想有些保守的高中老师.有一次,他需要带一些学生出去旅行,但又怕其中一些学生在旅行中萌生爱意.为了降低这种事情发生的概率,他决定确保带出去的任意两个学生至少要满足下面四条中的一条 ...

  9. BZOJ1324Exca王者之剑BZOJ1475方格取数——二分图最大独立集

    题目描述   输入 第一行给出数字N,M代表行列数.N,M均小于等于100 下面N行M列用于描述数字矩阵 输出 输出最多可以拿到多少块宝石 样例输入 2 2 1 2 2 1 样例输出 4 题意就是选取 ...

最新文章

  1. SugarCRM - 如何让Contact页面的关系字段字段Account变为readonly
  2. 使用sed,awk将love转换成LOVE,将CHINA转换成china
  3. WinForm中 事件 委托 多线程的应用【以一个下载进度条为例】
  4. mysql数据库系统配置文件_MySQL数据库(6)----配置文件 my.cnf 的使用
  5. ASP.NET Page和Response 输出js的区别
  6. 【代码+解析】有理数的类封装
  7. iOS开发cocoaPod的使用
  8. windows添加删除程序打不开解决方案
  9. 计算机网络成绩分析单,【计算机网络论文】计算机网络技术课程教考分离解析(共2033字)...
  10. 面试题:React中setState
  11. 微信小程序微商城(七):动态API实现商品分类
  12. 算法第四版_第二章_练习题_2.1.1~2.1.12
  13. 计算机控制系统的典型结构形式框图,计算机控制技术课后习题
  14. WiFi技术简述与发展
  15. 谈一谈软件系统的可用性
  16. CentOS后门入侵检测工具
  17. 语音笔记APP哪个好 用它直接录音并整理很方便
  18. 男程序员写代码的样子 VS 女程序员写代码的样子
  19. 我们建议您在Google的sellers.json文件中公开您的卖方信息
  20. AD10 PCB文件统一设置字体大小(默认字体大小)

热门文章

  1. 链表问题11——两个单链表相交的系列问题(三):判断两个有环链表是否相交
  2. QMessageBox对话框
  3. python yield yield from
  4. serv-u 15 设置非21端口外网FTP访问以及更改被动模式端口、防火墙映射
  5. 新版vue-cli搭建多页应用2
  6. Linux网络 - 数据包的发送过程
  7. HttpServlet详解
  8. qt4如何读oracle,Qt4编程的控制MPlayer
  9. 富文本编辑_博客的后台富文本编辑和阅读计数
  10. bert pytorch源码_【PyTorch】梯度爆炸、loss在反向传播变为nan