poj1469 COURSES 二分匹配模板水题
2015-03-17 17:53
253 查看
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int maxn = 310;
int match[maxn];
int line[maxn][maxn];
int vis[maxn];
int N , P;
int find(int start)
{
for(int i = 1;i <= N;i++)
{
if(!vis[i]&&line[start][i])
{
vis[i] = 1;
if(match[i] == -1 || find(match[i]))
{
match[i] = start;
return 1;
}
}
}
return 0;
}
void Match()
{
memset(match, -1 , sizeof(match));
int ans=0;
for(int i = 1;i <= P;i++)
{
memset(vis,0,sizeof(vis));
if(find(i))
ans++;
}
if(ans == P)
printf("YES\n");
else
printf("NO\n");
}
int main()
{
int T;
scanf("%d", &T);
while(T--)
{
memset(line, 0 ,sizeof(line));
scanf("%d%d", &P, &N);
for(int i = 1;i <= P;i++)
{
int num;
scanf("%d", &num);
while(num--)
{
int v;
scanf("%d", &v);
line[i][v] = 1;
}
}
Match();
}
return 1;
}
#include<cstdio>
#include<cstring>
using namespace std;
const int maxn = 310;
int match[maxn];
int line[maxn][maxn];
int vis[maxn];
int N , P;
int find(int start)
{
for(int i = 1;i <= N;i++)
{
if(!vis[i]&&line[start][i])
{
vis[i] = 1;
if(match[i] == -1 || find(match[i]))
{
match[i] = start;
return 1;
}
}
}
return 0;
}
void Match()
{
memset(match, -1 , sizeof(match));
int ans=0;
for(int i = 1;i <= P;i++)
{
memset(vis,0,sizeof(vis));
if(find(i))
ans++;
}
if(ans == P)
printf("YES\n");
else
printf("NO\n");
}
int main()
{
int T;
scanf("%d", &T);
while(T--)
{
memset(line, 0 ,sizeof(line));
scanf("%d%d", &P, &N);
for(int i = 1;i <= P;i++)
{
int num;
scanf("%d", &num);
while(num--)
{
int v;
scanf("%d", &v);
line[i][v] = 1;
}
}
Match();
}
return 1;
}
相关文章推荐
- 图--二分匹配模板
- 二分匹配模板
- hdu Courses 1083 二分匹配 ,匈牙利算法。。水题
- 二分匹配(匈牙利算法)【模板】
- 匈牙利算法模板 图的二分匹配 hdu 2063 过山车
- HDU 2236 无题II(二分匹配模板题,匈牙利算法)
- 图--二分匹配模板
- HDU2063(二分匹配入门模板题)
- HDU4185-Oil Skimming(二分匹配,匈牙利模板)
- POJ 3041 Asteroids(模板——二分最大匹配(BFS增广))
- 二分匹配模板
- HDU 2444 The Accomodation of Students(最大二分匹配(匈牙利算法)+二分图判断->模板题目)
- 二分图匹配水题列表
- POJ 3041 Asteroids(二分匹配模板题)
- HDU 1083 Courses(二分匹配匈牙利算法模板题啊)
- 最大权二分匹配—KM算法入门 && 模板
- 二分匹配模板
- HDU 2063 过山车 二分匹配模板题
- 求最大二分匹配(模板)
- POJ 3041 Asteroid (二分匹配模板-二分图最小覆盖)