标签:
| Time Limit: 1000MS | Memory Limit: 10000K | |
| Total Submissions: 20795 | Accepted: 9386 |
Description
Input
Output
Sample Input
5 5 2 2 5 3 2 3 4 2 1 5 3 1 2 5 1 2
Sample Output
4
水题瞬秒:
#include <cstdio>
#include <cstring>
#include <algorithm>
#define maxn 220
using namespace std;
int n, m;
int map[maxn][maxn];
int used[maxn];
int link[maxn];
void init(){
memset(map, 0, sizeof(map));
}
void getmap(){
for(int i = 1; i <= n; ++i){
int k;
scanf("%d", &k);
while(k--){
int a;
scanf("%d", &a);
map[i][a] = 1;
}
}
}
bool dfs(int x){
for(int i = 1; i <= m; ++i){
if(map[x][i] && !used[i]){
used[i] = 1;
if(link[i] == -1 || dfs(link[i])){
link[i] = x;
return true;
}
}
}
return false;
}
int hungary(){
int ans = 0;
memset(link, -1, sizeof(link));
for(int i = 1; i <= n; ++i){
memset(used, 0, sizeof(used));
if(dfs(i))
ans++;
}
return ans;
}
int main (){
while(scanf("%d%d", &n, &m) != EOF){
init();
getmap();
int sum = hungary();
printf("%d\n", sum);
}
return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
POJ 1274--The Perfect Stall【二分图 && 最大匹配数 && 水题】
标签:
原文地址:http://blog.csdn.net/hpuhjh/article/details/48010061