poj 匈牙利二分匹配 1274 The Perfect Stall
#include<iostream>
using namespace std;
int map[210][210],pa[210],vis[210];
int n,m;
int find(int x)
{
for(int i=1;i<=m;i++)
{
if(map[x][i]&&!vis[i]) //防止搭配重复
{
vis[i]=1;
if(pa[i]==-1||find(pa[i]))//核心部分如果x对应的猪圈y有猪了,我会找到这个猪圈y里的猪m递归
//看看这个猪圈里对应的猪m能不能对应别的猪圈,如果能对应别的猪圈,就让这个猪对应别的猪圈,
//让x对应这个猪圈y,这样来取得最大匹配数
{
pa[i]=x;
return 1;
}
}
}
return 0;
}
int main()
{
int p,t;
while(cin>>n>>m)
{
for(int i=0;i<210;i++)
{
for(int j=0;j<210;j++)
map[i][j]=0;
pa[i]=-1;
}
for(int i=1;i<=n;i++)
{
scanf("%d",&p);
while(p--)
{
scanf("%d",&t);
map[i][t]=1;
}
}
int cou=0;
for(int i=1;i<=n;i++)
{
memset(vis,0,sizeof(vis)); //每一次都清零,因为这里的vis是防止搭配重复
if(find(i))
cou++;
}
cout<<cou<<endl;
}
return 0;
}
poj 匈牙利二分匹配 1274 The Perfect Stall相关推荐
- poj 1274 The Perfect Stall
2019独角兽企业重金招聘Python工程师标准>>> The Perfect Stall Time Limit: 1000MS Memory Limit: 10000K Total ...
- [ACM_图论] The Perfect Stall 完美的牛栏(匈牙利算法、最大二分匹配)
描述 农夫约翰上个星期刚刚建好了他的新牛棚,他使用了最新的挤奶技术.不幸的是,由于工程问题,每个牛栏都不一样.第一个星期,农夫约翰随便地让奶牛们进入牛栏,但是问题很快地显露出来:每头奶牛都只愿意在她们 ...
- 利用匈牙利算法Hopcroft-Karp算法解决二分图中的最大二分匹配问题 例poj 1469 COURSES...
首先介绍一下题意:已知,有N个学生和P门课程,每个学生可以选0门,1门或者多门课程,要求在N个学生中选出P个学生使得这P个学生与P门课程一一对应. 这个问题既可以利用最大流算法解决也可以用匈牙利算法解 ...
- POJ - 2446 Chessboard 二分匹配+建图
题目链接 题意很简单,是二分匹配的一种常见的题型,问题就在于怎样转换到二分图上来. 首先对对n*m-k正常点进行编号,然后遍历查找每一个正常点的上下左右是否能连接(就是判断另个点是否也是正常的),如果 ...
- usaco The Perfect Stall(二分匹配模板)
其实二分匹配都是很早之前看的不过又忘了现在再看看比第一次好理解多了. /* ID:jinbo wu TASK:stall4 LANG:C++ */ #include<bits/stdc++.h& ...
- 【网络流24题】 No.3 最小路径覆盖问题 (网络流|匈牙利算法 -最大二分匹配)...
[题意] 给定有向图 G=(V,E).设 P 是 G 的一个简单路(顶点不相交) 的集合.如果 V 中每个 顶点恰好在 P 的一条路上,则称 P 是 G 的一个路径覆盖. P 中路径可以从 V 的任何 ...
- 杭电2063--过山车(二分匹配)
过山车 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...
- POJ1325二分匹配或者DINIC(最小路径覆盖)
题意: 有k个任务,两个机器,第一个机器有n个模式,第二个机器有m个模式,每个任务要么在第一个机器的一个模式下工作,要么在第二个机器的一个模式下工作,机器每切换一个模式需要重启一次,两个 ...
- 【HDU 2255】奔小康赚大钱 (最佳二分匹配KM算法)
奔小康赚大钱 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...
- 二分匹配最大匹配的理解(附图解)
定义 一个PXP的有向图中,路径覆盖就是在图中找一些路径,使之覆盖了图中的所有顶点,且任何一个顶点有且只有一条路径与之关联:(如果把这些路径中的每条路径从它的起始点走到它的终点,那么恰好可以经过图中的 ...
最新文章
- Charles抓取https请求
- 参数化查询 但未提供该参数(将null插入数据库)
- 15天内数据迁移!广东省能源局发布通知,这类数据中心面临停工风险!
- 非抢占式优先算法例题_非抢占短作业优先算法源代码(C语言)
- Base64的编码实现原理攻略
- java并发编程之线程的生命周期详解
- android 文字垂直居中,前端常见问题——安卓文本无法垂直居中
- CUDNN v3特性
- Mysql解压版配置环境等
- 【UNITY3D 游戏开发之八】UNITY编译到IPHONE运行 COLLIDER 无法正常触发事件解决方案...
- python---用python实现选择排序
- 项目管理相关的考试认证及证书价值介绍
- 计算机网络 子网掩码
- 思科实验4.4.1.2-Packet Tracer - 综合技能练习
- itextpdf实现文字路径裁切图片
- [Excel表格]单元格内换行
- 计算机图形渲染基础知识(个人笔记)
- NLP资源汇总和工具汇总
- php如何做表格,新手怎么制作表格
- Hadoop的三大核心组件
热门文章
- 【转载】快速掌握一个语言最常用的50%
- Xcode5 如何添加一个Github/Repository 并且Checkout
- 复合索引列顺序对性能的影响
- [11]2020-CVPR-State-Relabeling Adversarial Active Learning论文笔记
- svg的viewport和viewbox
- 使用Fastjson解析List对象时出现:{$ref:$.data[0].task.OBJECTS[0]}的问题原因及解决方法...
- [LeetCode] Search in Rotated Sorted Array [35]
- miniui中的相关问题
- fastjson 1.1.31 发布,Java 的 JSON 库
- Native Instruments Battery 4 for mac - 尖端鼓采样器