poj 1469 COURSES 二分匹配 dfs
2015-09-01 15:58
501 查看
#include <stdio.h> #include <string.h> #include <iostream> #include <algorithm> #include <vector> #include <queue> #include <stack> #include <set> #include <map> #include <string> #include <math.h> #include <stdlib.h> #include <time.h> using namespace std; int n,p,g[400][400],mk[400],cx[400],cy[400]; int dfs(int u) { int v; for(v=1;v<=n;v++) { if(g[u][v]&&mk[v]==0) { mk[v]=1; if(cy[v]==0||dfs(cy[v])) { cx[u]=v; cy[v]=u; return 1; } } } return 0; } int MaxMatch() { int ret=0,i; memset(cx,0,sizeof(cx)); memset(cy,0,sizeof(cy)); for(i=1;i<=p;i++) { if(cx[i]==0) { memset(mk,0,sizeof(mk)); ret+=dfs(i); } } return ret; } int main() { int i,_,t,u,j; scanf("%d",&_); while(_--) { scanf("%d%d",&p,&n); memset(g,0,sizeof(g)); for(i=1;i<=p;i++) { scanf("%d",&t); for(j=0;j<t;j++) { scanf("%d",&u); g[i][u]=1; } } if(MaxMatch()==p) printf("YES\n"); else printf("NO\n"); } return 0; }
相关文章推荐
- spring data jpa使用懒操作
- appium for mac 安装与测试ios说明
- WIN7 64位安装jdk,javac出错
- mac ping: sendto: Host is down PING不通别人的ip,可以ping通路由器
- Go并发编程基础(译)
- Objective-C学习笔记12:高级数据类型一
- CSU 1607: Do You Have The Template?(基于边权的树链剖分的完善模板)
- mysql 自增字段的设置
- spring jdbc的使用
- 火云开发课堂 - 《使用Cocos2d-x 开发3D游戏》系列 第十节:描边效果处理
- 正则表达式,用相反的方式过滤掉特殊字符
- 刷新的时候jquery获取checkbox是否为选中和设置选中
- 激活硬盘被关闭的DMA模式
- C语言中用于修改文件的存取时间的函数使用
- MySQL高速缓存启动方法及参数详解query_cache_size=32M query_cache_type=1
- linux查看cpu信息
- Objective-C学习笔记11:多态和动态类型
- 欢迎使用CSDN-markdown编辑器
- 设计一种算法,展示两人之间的“连接关系”或“社交路径”
- Go并发编程基础(译)