POJ 1469 COURSES【二分图匹配】
2012-04-22 09:55
218 查看
题意:给你n 个学生 p 个课程,每一个课程都有一定的学生会选,能否找出p 个学生使他们满足每个学生选的课都不同。
分析:看看能否找到一个完全匹配的二分图。
View Code
分析:看看能否找到一个完全匹配的二分图。
View Code
#include<stdio.h> #include<string.h> #define clr(x)memset(x,0,sizeof(x)) struct node { int to,next; }q[100000]; int head[103]; int tot; void add(int s,int u) { q[tot].to=u; q[tot].next=head[s]; head[s]=tot++; } int link[302]; int v[303]; int find(int x) { int k,i; for(i=head[x];i;i=q[i].next) { k=q[i].to; if(!v[k]) { v[k]=1; if(link[k]==0||find(link[k])) { link[k]=x; return 1; } } } return 0; } int main() { int sum,t,n,m,x,y,i,k; scanf("%d",&t); while(t--) { scanf("%d%d",&m,&n); clr(link); clr(head); tot=1; for(i=1;i<=m;i++) { scanf("%d",&k); while(k--) { scanf("%d",&x); add(i,x); } } sum=0; for(i=1;i<=m;i++) { clr(v); if(find(i)) sum++; else break; } if(sum==m) printf("YES\n"); else printf("NO\n"); } return 0; }
相关文章推荐
- POJ 1469-COURSES(二分图匹配入门-匈牙利算法)
- POJ 1469 COURSES(二分图匹配模板题)
- poj 1469 COURSES 二分图匹配
- poj 1469 COURSES (二分图匹配)
- POJ 1469 ZOJ 1140 Courses 二分图匹配
- poj题目1469 COURSES (二分图匹配,匈牙利算法)
- POJ 1469 COURSES(最大二分图匹配)
- poj 1469 || hdu 1083 Courses (二分图匹配)
- POJ 1469 COURSES(二分图匹配)
- POJ 1274 The Perfect Stall || POJ 1469 COURSES(zoj 1140)二分图匹配
- poj 1469 COURSES 二分图匹配初识
- POJ 1274 The Perfect Stall || POJ 1469 COURSES(zoj 1140)二分图匹配
- COURSES - POJ 1469 二分图匹配
- zoj 1140 poj 1469 COURSES(二分图匹配 匈牙利算法)
- POJ 1469 COURSES
- poj 1469 COURSES
- POJ 1469 COURSES
- POJ 1469 COURSES【匈牙利算法入门 二分图的最大匹配 模板题】
- POJ 1469 COURSES (二分匹配,邻接表)
- poj 1469 COURSES 【匈牙利匹配】