HDU 2458 Kindergarten【二分图之反建边】
来源:互联网 发布:用u盘修复ubuntu grub 编辑:程序博客网 时间:2024/05/17 01:05
原题连接:http://acm.hdu.edu.cn/showproblem.php?pid=2458
题意:…………
思路:反键边求最小点集覆盖key,boys+girls-key 就是答案。根据题意:反建边后,每条边代表的是该男孩和该女孩不认识,求的最小点集,把这些点去掉后即所有反建的边被去掉,则剩余的就是男女之间都相互认识。。
AC代码:
#include<iostream>#include<cstdio>#include<cstring>using namespace std;const int Max = 300;bool use[Max];int link[Max];bool map[Max][Max];void init(){ memset(map,true,sizeof(map));}bool Dfs(int k,int m){ int i,j; for(i=1;i<=m;i++) { if(map[k][i]&&use[i]) { use[i] = false; if(!link[i]||Dfs(link[i],m)) { link[i] = k; return true; } } } return false;}int MaxMatch(int n,int m){ int i,j; int ans = 0; memset(link,0,sizeof(link)); for(i=1;i<=n;i++) { memset(use,true,sizeof(use)); if(Dfs(i,m)) ans++; } return ans;}int main(){ int i,j,n,m,k; int ncase = 1; while(scanf("%d%d%d",&n,&m,&k)&&(n+k+m)) { init(); while(k--) { scanf("%d%d",&i,&j); map[i][j] = false; } printf("Case %d: ",ncase++); printf("%d\n",n+m-MaxMatch(n,m)); } return 0;}
- HDU 2458 Kindergarten【二分图之反建边】
- hdu 2458 二分图匹配 Kindergarten
- 【HDU】2458 Kindergarten 二分匹配
- HDU 2458Kindergarten(二分图 最大团点数)
- Kindergarten(二分图)
- hdu 2458 Kindergarten 匹配
- HDU 2458 Kindergarten
- 杭电2458 Kindergarten(二分图最大匹配)
- 【二分图+技巧性】北大 poj 3692 Kindergarten
- poj3692 Kindergarten 二分图最大独立集
- POJ 3692 Kindergarten (匈牙利 二分图)
- POJ3692 Kindergarten【二分图最大独立集】
- POJ - 3692 Kindergarten 二分图 最大匹配
- POJ 3692 Kindergarten (二分图 最大团)
- 【图论】【二分图匹配】[POJ 3692]Kindergarten
- POJ 3692 Kindergarten(二分图)
- POJ 3692Kindergarten(二分图最大匹配之最小顶点匹配)
- hdu 2458 Kindergarten (最大独立集)
- input 输入事件
- 填充颜色彩条
- 设计包含max函数的队列
- 基于Flash CS5 AS3.0 开发之_TextField中文字体特别注意事项
- 网间进程的标识和端口分配机制
- HDU 2458 Kindergarten【二分图之反建边】
- C,C++宏中#与##的讲解
- js获取body高度相关资料
- MVC设计模式
- ARM Linux静态映射分析 machine_desc
- 服务器推送技术
- 不为人知的JS调用样式的方法---document.createElement().addRule(..)
- lnmp配置下phpmyadmin无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装
- Android App的启动过程