#include <iostream>
#include <cstdio>
#include <memory.h>
using namespace std;
int n,m,num,temp,sum;
int re[][],link[];//牛与牛栏的对应关系
bool tag[];//增益路径
bool DFS(int a)
{
for(int i=;i<=m;i++)
{
if(re[a][i]!= && !tag[i])//如果节点i与a相邻并且未被查找过
{
tag[i]=true;//标记i为已查找过
if(link[i]==-||DFS(link[i]))//i在匹配M中,但是从与i相邻的节点出发可以有增广路
{
link[i]=a;//记录查找成功记录
// cout << "sucess i=" << i << " link[i]= "<<link[i] <<endl;
return true;//返回查找成功
}
}
}
return false;
}
int main()
{
//freopen("in.txt","r",stdin);
while(cin>>n>>m) // cow stall
{
int i,j,sum=;
memset(re,,sizeof(re));
memset(link,-,sizeof(link));
for(i=;i<=n;i++)
{
cin>>num;
for(j=;j<=num;j++)
{
cin>>temp;
re[i][temp]=;
}
}//初始化
for(i=;i<=n;i++) //cow
{
for(j=;j<=m;j++) //stall
{
tag[j]=false;
}
if(DFS(i))//从节点i尝试扩展
sum++;
}
cout << sum << endl;
}
return ;
}

【匈牙利算法】 二分图模板 poj 1274的更多相关文章

  1. # 匈牙利算法(二分图最大匹配)- hdu 过山车

    匈牙利算法(二分图最大匹配)- hdu 过山车 Hdu 2063 二分图:图中的点可以分成两组U,V,所有边都是连接U,V中的顶点.等价定义是:含奇数条边的图. 匹配:一个匹配是一个边的集合,其中任意 ...

  2. 匈牙利算法dfs模板 [二分图][二分图最大匹配]

    最近学了二分图最大匹配,bfs模板却死活打不出来?我可能学了假的bfs 于是用到了dfs模板 寻找二分图最大匹配的算法是匈牙利算法 匈牙利算法的主要程序是寻找增广路 寻找增光路是过程是:从一个未经配对 ...

  3. [模板] 匈牙利算法&&二分图最小字典序匹配

    匈牙利算法 简介 匈牙利算法是一种求二分图最大匹配的算法. 时间复杂度: 邻接表/前向星: \(O(n * m)\), 邻接矩阵: \(O(n^3)\). 空间复杂度: 邻接表/前向星: \(O(n ...

  4. poj1274 匈牙利算法 二分图最大匹配

    poj1274 题意: 有n个奶牛, m个畜舍, 每个畜舍最多装1头牛,每只奶牛只有在自己喜欢的畜舍里才能产奶. 求最大产奶量. 分析: 其实题意很明显, 二分图的最大匹配, 匈牙利算法. #incl ...

  5. Bzoj 1562: [NOI2009]变换序列 匈牙利算法,二分图匹配

    题目: http://cojs.tk/cogs/problem/problem.php?pid=409 409. [NOI2009]变换序列 ★★☆   输入文件:transform.in   输出文 ...

  6. 二分图最大匹配(匈牙利算法Dfs模板)

    #include<iostream> #include<cstdio> #include<cstring> #define maxn 2020 using name ...

  7. 匈牙利算法 DFS模板(了解度+1)

    //算法核心是求最大匹配数 #include<bits/stdc++.h> #include<iostream> #include<cstdio> #include ...

  8. poj-1469-COURSES-二分图匹配-匈牙利算法(模板)

    题意:N个学生,P个课程,问能不能找到课程的P个匹配. 思路:[早上睡醒了再写] 代码: #include <iostream> #include <cstdio> #incl ...

  9. hdoj 2063 过山车【匈牙利算法+邻接矩阵or邻接表】

    过山车 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

随机推荐

  1. jQuery判断滚动条是上滚还是下滚,且是否到达底部或顶部

    jQuery判断滚动条是上滚还是下滚,且是否到达底部或顶部:http://www.haorooms.com/post/jquery_scroll_upanddown //滚动条滚动加载更多内容 //判 ...

  2. 转换成maven时报错

    转自:将项目加入maven管理时报错 将项目加入maven管理时报错: Convert to maven project: An internal error occurred during: “En ...

  3. 后台验证url是不是有效的链接

    /** * 判断链接是否有效 * 输入链接 * 返回true或者false */ public static boolean isValid(String strLink){ URL url=null ...

  4. 数学#素数筛法 HDU 4548&POJ 2689

    找素数本来是很简单的问题,但当数据变大时,用朴素思想来找素数想必是会超时的,所以用素数筛法. 素数筛法 打表伪代码(用prime数组保存区间内的所有素数): void isPrime() vis[]数 ...

  5. 分布式事务、XA、两阶段提交、一阶段提交

    本文原文连接:http://blog.csdn.net/bluishglc/article/details/7612811 ,转载请注明出处! 1.XA XA是由X/Open组织提出的分布式事务的规范 ...

  6. LeetCode OJ 74. Search a 2D Matrix

    Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the follo ...

  7. 日志输出--C#

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...

  8. C++中构造函数或析构函数定义为private

    转自:http://www.blogjava.net/fhtdy2004/archive/2009/05/30/278971.html 很多情况下要求当前的程序中只有一个object.例如一个程序只有 ...

  9. 关于springboot启动时候报错:springboot Failed to parse configuration class [Application]

    把运行的java类放在一个package下后就不再提示这个错误. 使用的ide是intellij,之前也有因为没有创建package报错的经历,可能这是intellij必须的

  10. 简单的javasrcipt选项卡

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta char ...