HDU
来源:互联网 发布:淘宝图片怎么ps 编辑:程序博客网 时间:2024/05/20 09:07
HDU - 1083
题意:就是求最大匹配是否是完美匹配。
#include <cstdio>#include <iostream>#include <algorithm>#include <cstring>using namespace std;const int maxn = 500,maxe = 3e5;struct node{ int to,next; node(){} node(int a,int b){to = a; next = b;}}edge[maxe << 1];int edgenum;int h[maxn],used[maxn],belong[maxn];void add(int f,int t){ edge[edgenum] = node(t,h[f]); h[f] = edgenum++;}void init(){ edgenum = 0; for(int i = 0; i < maxn; i++) h[i] = -1, belong[i] = used[i] = 0;}bool Find(int u){ for(int i = h[u]; ~i; i = edge[i].next) { int v = edge[i].to; if(used[v]) continue; used[v] = 1; if(belong[v]==0 || Find(belong[v])) { belong[v] = u; return true; } } return false;}int main(){ int t,pnum,v,p,n; scanf("%d",&t); while(t--) { init(); scanf("%d%d",&p,&n); for(int i = 1; i <= p ; i++) { scanf("%d",&pnum); for(int j = 0; j < pnum; j++) { scanf("%d",&v); add(i,v+p); add(v+p,i); } } int ans = 0; for(int i = 1; i <= p; i++) { memset(used,0,sizeof(used)); if(Find(i)) ans ++; } ans == p ? printf("YES\n") : printf("NO\n"); } return 0;}
阅读全文
0 0
- hdu
- hdu
- HDU
- hdu ()
- hdu
- hdu
- HDU
- HDU
- hdu
- hdu
- HDU
- Hdu
- hdu
- hdu-
- hdu
- hdu
- hdu
- HDU
- 评价小星星下面出现竖线问题
- Django 自定义模板标签(template_tags)究竟有什么用?
- python使用*.pth添加环境变量使用自定义模块的方法
- Java 中的代理模式及动态代理
- 存储过程详解
- HDU
- 文件格式之ppm
- 雨的四季
- Android开发入门——推箱子游戏开发实战(十五,终结)
- linux调试----addr2line
- poj2318 TOYS 算法简介和C语言实现
- python爬虫-->下载缓存
- 【工具类】Java实现AES算法 加密和解密
- 落单的数 II-LintCode