最大团=反图的最大独立集,而反图又恰好是一张二分图,根据二分图的最大独立集=n-最大匹配就可以做了。

 1 #include<cstdio>
 2 #include<cstring>
 3 #define N 405
 4 struct ji{
 5     int nex,to;
 6 }edge[N*N];
 7 int E,t,n,m,k,x,y,ans,head[N],vis[N],flag[N],a[N][N];
 8 void add(int x,int y){
 9     edge[E].nex=head[x];
10     edge[E].to=y;
11     head[x]=E++;
12 }
13 bool dfs(int k){
14     if (vis[k])return 0;
15     vis[k]=1;
16     for(int i=head[k];i!=-1;i=edge[i].nex){
17         int v=edge[i].to;
18         if ((!flag[v])||(dfs(flag[v]))){
19             flag[v]=k;
20             flag[k]=v;
21             return 1;
22         }
23     }
24     return 0;
25 }
26 int main(){
27     while (scanf("%d%d%d",&n,&m,&k)!=EOF){
28         if ((!n)&&(!m)&&(!k))return 0;
29         memset(a,0,sizeof(a));
30         E=0;
31         memset(head,-1,sizeof(head));
32         for(int i=1;i<=k;i++){
33             scanf("%d%d",&x,&y);
34             a[x][y]=1;
35         }
36         for(int i=1;i<=n;i++)
37             for(int j=1;j<=m;j++)
38                 if (!a[i][j])add(i,j+n);
39         ans=n+m;
40         memset(flag,0,sizeof(flag));
41         for(int i=1;i<=n;i++){
42             memset(vis,0,sizeof(vis));
43             if (!flag[i])ans-=dfs(i);
44         }
45         printf("Case %d: %d\n",++t,ans);
46     }
47 }

View Code

转载于:https://www.cnblogs.com/PYWBKTDA/p/11254715.html

[poj3692]Kindergarten相关推荐

  1. 图论总结(一)二分图最大匹配

    二分图最大匹配 (一).二分图 1.定义 2.性质 3.判定 (二).二分图的匹配 1.二分图的最大匹配 2. König定理及其证明 3.最小边覆盖与最大独立集 (三).增广路径 1.定义 2.性质 ...

  2. 【ZOJ - 3715】Kindergarten Election(枚举得票数,贪心)

    题干: At the beginning of the semester in kindergarten, the n little kids (indexed from 1 to n, for co ...

  3. UVA494 Kindergarten Counting Game

    C语言程序员的一项重要工作就是封装功能函数. 问题链接:UVA494 Kindergarten Counting Game. 题意简述:幼儿园数单词游戏.输入若干句话,数一下每句有几个单词输出. 问题 ...

  4. UVA494 Kindergarten Counting Game【输入输出+水题】

    Everybody sit down in a circle. Ok. Listen to me carefully. "Woooooo, you scwewy wabbit!" ...

  5. poj3692(二分匹配)

    最大孩子数=(男孩子数+女孩子数)-最大匹配数 #include<iostream> #include<algorithm> #include<cstdio> #i ...

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

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

  7. POJ3692 最大点权独立集元素个数

    题意:      n个男孩和m个女孩,给你他们谁和谁彼此了解,问你要找到一个集合,使得这个集合中的男孩和女孩相互了解,并且人数最多. 思路:      简单题目,其实就是在求最大点权独立集元素个数,先 ...

  8. UVA 494(Kindergarten Counting Game)

    这道题的标题中的幼儿园让人看得郁闷,计算单词的数目... #include<stdio.h>#include<stdlib.h>#include<ctype.h># ...

  9. 6.494 - Kindergarten Counting Game

    2019独角兽企业重金招聘Python工程师标准>>> 原题只包含大小写字母,所以遇见字母的时候计数器++;  那么连续的字母就会无限相加.  为了解决这个问题,用一个标识符,遇见字 ...

最新文章

  1. JavaScript与DOM编程
  2. 关于jboss在jdk6下webservice不正常问题的解决
  3. 前端学习(1466):表格案例其他效果演示
  4. raml2html 安装,Raml实践
  5. 撇去 Windows 的微软,又掉进了贪污贿赂的深坑
  6. 操作系统中的hosts文件
  7. 七月算法机器学习 8 信息论、最大熵模型与EM算法
  8. Android Studio查看Android源码
  9. 解决ColorPix拾色器提取颜色错误
  10. linux的vmstat命令,vmstat命令参数详解
  11. python取字符串首字母_python字符串操作
  12. Mac终端应用变身文件 MD5/SHA1 校验工具
  13. 【谈谈疫情+金三银四下测试面试的行情】一个月内连续面试40+位候选人。
  14. 加油站都需要什么手续_开办加油站需要办哪些手续?
  15. 电气simulink常用模块_FANUC 各IO模块保险丝位置
  16. turtle画樱花树林
  17. 2007中国各省GDP排名
  18. 谦逊编程(翻译整理)
  19. npm ERR /usr/bin/git ls-remote -h -t git://github.com/adobe-webplatform/eve.git
  20. Apache服务器的搭建与配置

热门文章

  1. APL开发日志--2012-11-18
  2. 除非得到你的首肯,否则别人无法伤害你——Leo网上答疑(20)
  3. One Bug of WatiN?
  4. CentOS7 0安装jdk + tomcat
  5. 程序员的能力矩阵表【转载自】
  6. 数据泄漏防御在企业的应用
  7. 机器学习基石第三讲:types of learning
  8. C#鼠标右键弹出菜单
  9. MySQL 如何利用做排序
  10. 为什么要设置Java环境变量(详解)