题目链接

题意

已知班级有g个女孩和b个男孩,所有女生之间都相互认识,所有男生之间也相互认识,给出m对关系表示哪个女孩与哪个男孩认识。现在要选择一些学生来组成一个集合,使得里面所有人都认识,求此集合最大人数。

思路

二分图的最大团的定义:对于一般图来说,团是一个顶点集合,且由该顶点集合诱导的子图是一个完全图,简单说,就是选出一些顶点,这些顶点两两之间都有边。最大团就是使得选出的这个顶点集合最大。对于二分图来说,我们默认为左边的所有点之间都有边,右边的所有顶点之间都有边。那么,实际上,我们是要在左边找到一个顶点子集X,在右边找到一个顶点子集Y,使得X中每个顶点和Y中每个顶点之间都有边。

原图的最大团 = 补图的最大独立集

#include <cstdio>
#include <cstring>
using namespace std;
const int N = 211;
int mp[N][N], match[N], vis[N], n, m; bool dfs(int u) {
for(int v = 1; v <= m; v++) {
if(vis[v] || !mp[u][v]) continue;
vis[v] = 1;
if(match[v] == -1 || dfs(match[v])) {
match[v] = u;
return true;
}
} return false;
} int Hungry() {
memset(match, -1, sizeof(match));
int ans = 0;
for(int i = 1; i <= n; i++) {
memset(vis, 0, sizeof(vis));
ans += dfs(i);
} return n + m - ans;
} int main() {
int e, cas = 1;
while(~scanf("%d%d%d", &n, &m, &e), n + m + e) {
for(int i = 1; i <= n; i++)
for(int j = 1; j <= m; j++) mp[i][j] = 1;
for(int i = 1; i <= e; i++) {
int u, v; scanf("%d%d", &u, &v);
mp[u][v] = 0;
}
printf("Case %d: %d\n", cas++, Hungry());
}
return 0;
}

最新文章

  1. RapidJSON 代码剖析(三):Unicode 的编码与解码
  2. HIbernate的对象状态
  3. 51nod 1163贪心
  4. How To Use API Online?
  5. VirtualDesktop与Desktops多窗口程序的对比
  6. [C#][转][string 字符串截取
  7. ios模拟器安装.app
  8. java集合框架02——Collection架构与源码分析
  9. html的常用基础应用
  10. Spring配置中&lt;context:annotation-config&gt; VS &lt;context:component-scan&gt;
  11. JS中replace()用法举例
  12. HTML5入门要点
  13. keepalived vip 没有生成或者生成了ping不通?
  14. SQL Server (MSSQLSERVER) 服务因 2148081668 服务性错误而停止。
  15. centos6.5 yum安装lamp
  16. Storm 第三章 Storm编程案例及Stream Grouping详解
  17. HDU 3172 Virtual Friends(map+并查集)
  18. compass框架的sprite雪碧图的用法简要
  19. jQuery插件实现表格隔行换色且感应鼠标高亮行变色
  20. 使用python进行图像处理-调整图片大小

热门文章

  1. Parse陨落,开发者服务今后路在何方?
  2. WPF中的文字修饰——上划线,中划线,基线与下划线
  3. C# 桌面软件开发-深入学习 [1]- AY-C#人爱学不学-aaronyang技术分享
  4. DSP Builder 12.0安装及crack方法
  5. Win8 Metro(C#)数字图像处理--2.71Sigma平滑滤波器
  6. 读取注册表获取Windows系统XP/7/8/10类型(使用wcscmp比较wchar[]内容)
  7. linux+php+swoole解决方案
  8. C++的 RTTI 观念和用途(非常详细)
  9. CEGUI 0.7.7 VS2010+SP3 编译过程
  10. Design Thinking Workshop @ Agile Tour 2013 Shanghai