(精)(图论加强)(二分图最大匹配)(用向量不超时)
2012-05-08 19:35
337 查看
/* 1 二分图的最大匹配=最小点集覆盖 2 二分图最小路径覆盖数=二分图中的节点数-相应二分图中的最大匹配数.
3 第一次使用的是数组,让后超时了。貌似向量比较快 */ #include<iostream> #include<algorithm> #include<cstring> #include<cstdio> #include<vector> using namespace std; const int M=510; int v[M];int t[M]; vector<int> s[M]; int fun(int x,int m) { for(int i=0;i<s[x].size();i++) { if(!v[s[x][i]]) { v[s[x][i]]=1; if(t[s[x][i]]==0||fun(t[s[x][i]],m)) { t[s[x][i]]=x; return 1; } } } return 0; } int main() { int N;scanf("%d",&N); while(N--) { int i; int m,n;scanf("%d%d",&m,&n); while(n--) { int x,y;scanf("%d%d",&x,&y);s[x].push_back(y); } memset(t,0,sizeof(t));int sum=0; for(i=1;i<=m;i++) { memset(v,0,sizeof(v)); if(fun(i,m))sum++; } for(i=0;i<M;i++)s[i].clear(); printf("%d\n",sum); } }
相关文章推荐
- 理论: 图论(10): 二分图的最大匹配 (匈牙利算法)
- 图论笔记-最短路+二分图最大匹配+最小路径覆盖
- 理论: 图论(11): 二分图的最大权匹配(KM算法)HDU 2255
- 图论二分图匈牙利算法求最大匹配
- HDU 2063 过山车(二分图最大匹配问题+最大流 超时解法)
- ACM: 二分图最大匹配 图论题 poj 2…
- CUGB图论专场2:B - Asteroids 二分图:最小顶点覆盖=最大匹配数
- hdu2255 奔小康赚大钱 【二分图最大权匹配-KM算法】
- HDU1150 匈牙利算法(求二分图最大匹配)
- HDU 2444 The Accomodation of Students(最大二分匹配(匈牙利算法)+二分图判断->模板题目)
- poj 2195 Going Home 二分图最大权匹配
- uva 11383(二分图最大权匹配)
- poj 2446 二分图最大匹配(奇偶图)网上貌似叫(黑白染色图)
- POJ 1325 Machine Schedule (最小点覆盖 && 二分图最大匹配)
- poj3041-Asteroids , 二分图的最小顶点覆盖数 = 最大匹配数
- HDU-2444 The Accomodation of Students(二分图判断+最大二分匹配)
- 二分图最大匹配
- zoj3460(二分图最大匹配+二分)
- hdu 4160 Dolls--最小点集覆盖=V-二分图最大匹配
- 二分图最大权匹配-km算法