二分图匹配 Hdu1150
来源:互联网 发布:谷歌退出中国 知乎 编辑:程序博客网 时间:2024/06/05 07:29
注意机器一开始在0_mode下工作,所以一开始就相当于选了0号节点。我们只需跑 残余图的最小顶点覆盖。而这等价于最大匹配。
算法写的很巧妙,仔细理解。
#include <iostream>#include <cstring>#include <cstdio>using namespace std;int map[105][105],match[105];;bool vis[105];int n,m,k;bool dfs(int i){for (int j=0;j<m;j++){if (!vis[j]&&map[i][j]){vis[j]=true;if (match[j]==-1||dfs(match[j])){match[j]=i;return true;}}}return false;}int Match(){int ret=0;memset(match,-1,sizeof(match));for (int i=0;i<n;i++){memset(vis,false,sizeof(vis));ret+=dfs(i);}return ret;}int main(){int x,t1,t2;while (~scanf("%d",&n),n){scanf("%d%d",&m,&k);memset(map,0,sizeof(map));for (int i=0;i<k;i++){scanf("%d%d%d",&x,&t1,&t2);if (t1>0&&t2>0){map[t1][t2]=1;}}printf("%d\n",Match());}return 0;}
0 0
- 二分图匹配 Hdu1150
- HDU1150(二分图+最大匹配+匈牙利算法)
- hdu1150 二分图最大匹配模板
- hdu1150(二分图匹配模版题)
- hdu1150 二分图匹配的最小点覆盖
- HDU1150 匈牙利算法(求二分图最大匹配)
- hdu1150—Machine Schedule(二分图最大匹配)
- 【HDU1150】【建模】【最小点覆盖】【二分匹配】
- 二分匹配之HDU1150 Machine Schedule
- HDU1150 二分匹配 最少点覆盖=最大匹配数
- 二分图最大匹配-匈牙利算法-HDU2063-HDU1068-HDU1150-HDU2119
- HDU1150/POJ1325_Machine Schedule(二分图/最小点覆盖=最大匹配)
- dfs,bfs的二分匹配模板(模板题hdu1150)
- 二分图最小顶点覆盖 hdu1150
- hdu1150(二分图最小顶点覆盖)
- 【图算法之二分图】HDU1150---Machine Schedule
- HDU1150-- Machine Schedule( 二分图最小顶点覆盖)
- hdu1150 Machine Schedule (二分图的最小顶点覆盖)
- IE6,7下select宽度定死显示不全的解决方案
- Java中CopyOnWriteArrayList 的使用
- VC++6.0常见编译错误中英文对照表
- 黑马程序员————单例设计模式、线程间的通信等等
- 内部类
- 二分图匹配 Hdu1150
- nagios插件之监控AES日志文件--检查ERROR
- 自己动手写CPU之第九阶段(4)——加载存储指令实现思路
- 三元组顺序结构实现稀疏矩阵相加,行序优先(Java语言描述)
- YII显示sql进行调试
- Android中自定义布局无法在xml中使用的问题
- Java基础知识1:了解Java,安装JDK
- ArrayList与LinkedList的简单比较
- HDU 1018-Big Number(数学)