hdu1068-Girls and Boys(最大独立集,匹配问题)
来源:互联网 发布:js push 数组 编辑:程序博客网 时间:2024/05/20 20:17
题目来源:http://showproblem.php?pid=1068
题意
有那么一堆人,编号从0开始到n-1,每个人都有几个有关系的人,研究者试图找出没有缘分同学的最大集。输出数量。
思路
利用匈牙利匹配求出最大匹配,因为是求得两个人之间的,所以最后结果要除以2,求出最大匹配,然后最大独立集的元素数量=总个数-最大匹配
代码
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int maxn=1000+10;int pre[maxn],vis[maxn];int mp[maxn][maxn];int n;void init(){ memset(mp,0,sizeof(mp)); for(int i=1; i<=n; i++) { int l,r,k; scanf("%d: (%d)",&l,&k); while(k--) { scanf("%d",&r); mp[l][r]=1; } }}int dfs(int i){ for(int j=0; j<n; j++) { if(mp[i][j]&&!vis[j]) { vis[j]=1; if(!pre[j]||dfs(pre[j])) { pre[j]=i; return 1; } } } return 0;}void solve(){ int ret=0; memset(pre,0,sizeof(pre)); for(int i=0; i<n; i++) { memset(vis,0,sizeof(vis)); ret+=dfs(i); } printf("%d\n",n-(ret/2));}int main(){ while(~scanf("%d",&n)) { init(); solve(); }}
阅读全文
0 0
- hdu1068-Girls and Boys(最大独立集,匹配问题)
- hdu1068 Girls and Boys 最大独立集
- hdu1068 Girls and Boys最大独立集
- hdu1068 Girls and Boys 最大独立集
- hdu1068 Girls and Boys --- 最大独立集
- HDU1068 Girls and Boys 【最大独立集】
- HDU1068 Girls and Boys(最大独立集)
- HDU1068 (最大独立集)Girls and Boys
- hdu1068 Girls and Boys(最大点独立集)
- hdu1068 Girls and Boys (二分图最大独立集)
- HDU1068-Girls and Boys(二分图_最大独立集)
- hdu1068 Girls and Boys,二分图最大独立集
- 【HDU1068】Girls and Boys(最大独立集数,匈牙利算法)
- Girls and Boys----最大独立集(匹配)
- HDU1068,POJ1466——Girls and Boys(二分图最大独立集)
- Girls and Boys(最大独立集问题)
- hdu 1068 Girls and Boys 最大独立集(最大匹配)
- hdu1068解题报告--Girls and Boys--可以说是白话最大独立集学习总结
- st05蓝色偏单行业destoon6.0模板1200px宽屏模板
- ThinkPHP composer的安装及图像处理类库加载
- 图片懒加载
- [面试]红黑树性质,BST(二叉搜索树)、AVL(平衡二叉搜索树)、RBT(红黑树)、B-Tree(B-树和B+树)
- 条款07:为多态基类声明virtual析构函数
- hdu1068-Girls and Boys(最大独立集,匹配问题)
- Java正则表达式判断是否为手机号码
- c语言的那些操作符
- Cannot instantiate the type List
- VS2008使用技巧及快捷键大全
- tensorflow variable_scope\name_scope
- 基于springmvc实现后台实现简单的验证码
- 算法学习
- 禁止复制兼容input及各个版本浏览器