poj1274 The Perfect Stall 二分图最大匹配模板题 匈牙利算法BFS
来源:互联网 发布:观相 知乎 编辑:程序博客网 时间:2024/06/05 23:34
POJ 1274 点击打开链接
和poj1469几乎一模一样。。
有n头牛要在m个牛栏里产nai,每个牛栏只能装一头牛,每头牛都有各自喜欢的牛栏(可以多个)。你现在知道了各头牛的信息,然后问你最多有几个牛栏会被使用。
二分图最大匹配。。。
套模板:
#include<stdio.h>#include<iostream>#include<queue>#include<vector>#include<string.h>using namespace std;int pre[305],vis[305];int ml[305],mr[305];//左集合点的匹配点 右集合点的匹配点int p,n;vector<int>V[30005];//vector存图int MaxMatch()//bfs实现匈牙利算法{ int ans=0; memset(vis,0,sizeof(vis)); memset(ml,-1,sizeof(ml)); memset(mr,-1,sizeof(mr)); for(int i=1; i<=p; i++) { if(ml[i]!=-1)continue; queue<int>Q; Q.push(i); pre[i]=-1; int flag=0;//是否找到增广路 while(!Q.empty()&&!flag) { int v=Q.front(); Q.pop(); for(int j=0; j<V[v].size()&&!flag; j++) { int to=V[v][j]; if(vis[to]!=i) { vis[to]=i; Q.push(mr[to]); if(mr[to]>=0) { pre[mr[to]]=v;//没找到增广路,记下路径 } else//找到了 { flag=1; int d=v; int e=to; while(d!=-1)//更改路径 { int temp=ml[d]; ml[d]=e; mr[e]=d; e=temp; d=pre[d]; } } } } } if(flag)ans++;//找到增广路,匹配边加一条 } return ans;}int main(){ while(~scanf("%d%d",&p,&n)) { int num,a; for(int i=1; i<=p; i++) { V[i].clear(); scanf("%d",&num); for(int j=1; j<=num; j++) { scanf("%d",&a); V[i].push_back(a); } } int ans=MaxMatch(); printf("%d\n",ans); }}
阅读全文
0 0
- poj1274 The Perfect Stall 二分图最大匹配模板题 匈牙利算法BFS
- POJ1274 The Perfect Stall [二分图最大匹配 匈牙利算法]
- POJ1274:The Perfect Stall(二分图最大匹配 匈牙利算法)
- POJ1274 The Perfect Stall 二分图,匈牙利算法
- POJ1274 The Perfect Stall【二分图最大匹配】
- poj1274 The Perfect Stall(二分图匹配 / 最大流)
- poj1274 The Perfect Stall(二分图匹配)
- poj1274 The Perfect Stall【二分图匹配】
- POJ 1274 The Perfect Stall (二分图最大匹配入门题,匈牙利算法)
- poj1274 The Perfect Stall(二分图模板题)
- POJ1274 The Perfect Stall 简单最大二分匹配
- poj1274 The Perfect Stall (匈牙利算法)
- POJ_P1274 The Perfect Stall(二分图匹配+匈牙利算法)
- POJ1274 匈牙利算法 最大二分图匹配入门模板
- POJ 1274The Perfect Stall (二分图最大匹配问题,匈牙利算法实现)
- The Perfect Stall 完美的牛栏 二分图最大匹配,匈牙利算法
- poj1274 The Perfect Stall 二分匹配简单题
- poj1274 匈牙利算法 二分图最大匹配
- STM32 BootLoader设计
- JMeter常用插件的安装和使用
- Python:正则表达式(一)
- hdu6171-(双向bfs-hash表)
- geohash编码
- poj1274 The Perfect Stall 二分图最大匹配模板题 匈牙利算法BFS
- 教你彻底学会动态规划——入门篇
- Hbase 数据迁移的常见方式(四)
- 【招聘系列2】Hive面试问题
- 关于线程的30个问题
- Java多线程基础
- 开发者所需要知道的 iOS 11 SDK 新特性
- 基于Jquery插件Uploadify实现实时显示进度条上传图片
- redis五种数据类型学习笔记