hdu 4619 Warm up 2 (二分匹配)
来源:互联网 发布:正版matlab软件价格 编辑:程序博客网 时间:2024/05/21 09:41
/*二分匹配邻接表 (匈牙利算法)*/# include<stdio.h># include<algorithm># include<string.h>using namespace std;# define MAX 13000int cnt;int n,m,map[MAX],vis[MAX],head[MAX];int tot;struct node{ // int u; int to; int next;}Edge[MAX*2];void add(int u,int v){// Edge[tot].u=u; Edge[tot].to=v; Edge[tot].next=head[u]; head[u]=tot; tot++; // Edge[tot].u=v; Edge[tot].to=u; Edge[tot].next=head[v]; head[v]=tot; tot++;}int bfs(int x){ for(int i=head[x]; i!=-1; i=Edge[i].next) { int v=Edge[i].to; if(!vis[v]) { vis[v]=1; if(!map[v]||bfs(map[v])) { map[v]=x; return 1; } } } return 0;}int f(){ int a=0; memset(map,0,sizeof(map)); for(int i=0; i<=12000; i++)//总点数 { memset(vis,0,sizeof(vis)); if(bfs(i)) a++; } return a;}int main(){ int i,j,k,cot1=0,a,b,u,v; while(~scanf("%d%d",&n,&m),n+m) { tot=0; memset(head,-1,sizeof(head)); for(i=0; i<n; i++) { scanf("%d%d",&a,&b); add((b)*102+(a),(b)*102+a+1);///离散化 } for(i=0; i<m; i++) { scanf("%d%d",&a,&b); add((b)*102+a,(b+1)*102+a); } int ans=f(); printf("%d\n",ans/2); } return 0;}
0 0
- hdu 4619 Warm up 2[二分匹配]
- hdu 4619 Warm up 2 (二分匹配)
- hdu 4619 Warm up 2 (二分匹配)
- hdu 4619 Warm up 2【二分匹配】
- hdu Warm up 2( 二分图匹配)
- hdu 4619 Warm up 2 ( 二分图最大匹配 )
- hdu 4619 Warm up 2(二分图最大匹配)
- HDU-4619 Warm up 2 二分图匹配。
- HDU 4619 Warm up 2(最大流或二分匹配)
- HDU 4619-Warm up (二分图匹配)
- 杭电 hdu Warm up 2 (二分匹配)
- HDU 4619 —— Warm up 2(二分图最大匹配)
- Warm up 2(hdu4619,二分匹配)
- hdu_4619 Warm up 2 二分图匹配
- hdu 4619 Warm up 2 (二分图)
- HDU 4619 Warm up 2 (二分图最小覆盖集)
- HDU 4619 Warm up 2 (二分图最小覆盖集)
- HDU 4619 Warm up 2 最大匹配数
- unity3d协程方法停止不了
- JAVA设计模式之单例模式
- 【机房收费系统】MSHflexgrid的用法
- 115个Java面试题和答案——终极列表
- hdu 1171 Big Event in HDU (01背包)
- hdu 4619 Warm up 2 (二分匹配)
- [linux][shell]控制进程不定时重启
- json进阶(一)js读取解析JSON类型数据
- 类模板
- SharedPreferencesCompat的由来与简单解析
- mysql中查看表结构相关sql
- BZOJ 1367 [Baltic2004]sequence 可并堆
- hdu2037 (区间贪心问题)
- 【mongodb系统学习之十】mongodb查询(二)