hdu2063 过山车 二分匹配 匈牙利算法
来源:互联网 发布:c语言逆序输出 编辑:程序博客网 时间:2024/04/30 21:16
#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
using namespace std;
int Find(int a[][501] , int n , int x ,int visit[] ,int result[])
{
for(int i = 1 ; i <= n ; i ++ )
{
if(a[x][i] == 1 && visit[i] == 0)
{
visit[i] = 1;
if(result[i] == -1 || Find(a , n , result[i] , visit , result))
{
result[i] = x;
return 1;
}
}
}
return 0 ;
}
int main()
{
int K , M , N ;
while(scanf("%d" , &K) != EOF && K)
{
scanf("%d%d" , &M , &N);
int a[501][501] ;
int visit[501];
int result[501];
memset(a , 0 , sizeof(a));
memset(result , -1 , sizeof(result));
for(int i = 0 ; i < K ; i ++ )
{
int t1 , t2;
scanf("%d%d" , &t1 , &t2);
a[t1][t2] = 1;
}
int sum = 0 ;
for(int i = 1 ; i <= M ; i ++ )
{
memset(visit , 0 , sizeof(visit));
sum += Find(a , N , i , visit ,result);
}
cout << sum << endl;
}
return 0;
}
#include <cstdio>
#include <cstring>
#include <string>
using namespace std;
int Find(int a[][501] , int n , int x ,int visit[] ,int result[])
{
for(int i = 1 ; i <= n ; i ++ )
{
if(a[x][i] == 1 && visit[i] == 0)
{
visit[i] = 1;
if(result[i] == -1 || Find(a , n , result[i] , visit , result))
{
result[i] = x;
return 1;
}
}
}
return 0 ;
}
int main()
{
int K , M , N ;
while(scanf("%d" , &K) != EOF && K)
{
scanf("%d%d" , &M , &N);
int a[501][501] ;
int visit[501];
int result[501];
memset(a , 0 , sizeof(a));
memset(result , -1 , sizeof(result));
for(int i = 0 ; i < K ; i ++ )
{
int t1 , t2;
scanf("%d%d" , &t1 , &t2);
a[t1][t2] = 1;
}
int sum = 0 ;
for(int i = 1 ; i <= M ; i ++ )
{
memset(visit , 0 , sizeof(visit));
sum += Find(a , N , i , visit ,result);
}
cout << sum << endl;
}
return 0;
}
0 0
- hdu2063 过山车 (匈牙利算法 二分匹配)
- hdu2063 过山车 二分匹配 匈牙利算法
- hdu2063[过山车] 二分图匹配 匈牙利算法
- hdu2063 过山车 二分图最大匹配 匈牙利算法
- HDU2063 过山车(二分图匹配-匈牙利算法模版题)
- hdu2063 过山车 (二分图匹配,匈牙利算法)
- hdu2063 过山车 二分图/最大匹配(匈牙利算法)
- hdu2063过山车(匈牙利算法)二分图匹配
- 【HDU2063】过山车(二分图最大匹配,匈牙利算法)
- HDU2063过山车 匈牙利二分图最大匹配
- HDU2063 过山车 【匈牙利算法】
- HDU2063过山车(二分匹配)
- hdu2063 过山车 二分匹配
- 二分匹配 HDU2063 过山车
- HDU2063——过山车(二分图,匈牙利算法2)
- HDU2063---过山车(匈牙利算法)
- (HDU2063)过山车(匈牙利算法入门)
- hdu2063过山车(二分匹配)
- linux命令eval的用法
- ScrollView与EditText滑动冲突解决办法
- 2015062704 - 薛仁贵
- 数学计算
- Python中的结构化数据分析利器-Pandas简介
- hdu2063 过山车 二分匹配 匈牙利算法
- 使用ffmpeg库编译错误及解决办法
- 黑马程序员--Java学习日记之网络编程
- cocos2dx lua学习笔记 <一> quick 3.5把自定义C++类绑定到lua
- iOS开发之使用UIView-Positioning简化页面布局
- Reverse Integer (数字反转)
- iOS使用stroryboard如何进行本地化
- FPGA图像处理系列——实现窗处理
- STL学习笔记-- multiset