hdu3829及二分图最大匹配模板
2014-07-24 14:53
190 查看
老题目了,复习了一下匈牙利算法。
#include<iostream>
#include<cstring>
#include<string>
#include<cmath>
#include<cstdlib>
#include<vector>
#define rep(i,a,b) for (int i=a;i<(b+1);i++)
using namespace std;
int n,m,k;
string a[505],b[505];
vector<int> v[505];
int pre[505]={0};
bool vis[505]={false};
int find(int x){
rep(i,0,v[x].size()-1){
int to=v[x][i];
if (vis[to]) continue;
vis[to]=1;
if (pre[to]==-1||find(pre[to])){
pre[to]=x;
return 1;
}
}
return 0;
}
int main(){
while (~scanf("%d%d%d",&n,&m,&k)){
rep(i,1,k) cin>>a[i]>>b[i];
rep(i,1,500) v[i].clear();
rep(i,1,k) rep(j,1,k) if (a[i]==b[j]||b[i]==a[j]){
v[i].push_back(j);
v[j].push_back(i);
}
memset(pre,-1,sizeof pre);
int ans=0;
rep(i,1,k){
memset(vis,false,sizeof vis);
ans+=find(i);
}
printf("%d\n",k-ans/2);
}
return 0;
}
#include<iostream>
#include<cstring>
#include<string>
#include<cmath>
#include<cstdlib>
#include<vector>
#define rep(i,a,b) for (int i=a;i<(b+1);i++)
using namespace std;
int n,m,k;
string a[505],b[505];
vector<int> v[505];
int pre[505]={0};
bool vis[505]={false};
int find(int x){
rep(i,0,v[x].size()-1){
int to=v[x][i];
if (vis[to]) continue;
vis[to]=1;
if (pre[to]==-1||find(pre[to])){
pre[to]=x;
return 1;
}
}
return 0;
}
int main(){
while (~scanf("%d%d%d",&n,&m,&k)){
rep(i,1,k) cin>>a[i]>>b[i];
rep(i,1,500) v[i].clear();
rep(i,1,k) rep(j,1,k) if (a[i]==b[j]||b[i]==a[j]){
v[i].push_back(j);
v[j].push_back(i);
}
memset(pre,-1,sizeof pre);
int ans=0;
rep(i,1,k){
memset(vis,false,sizeof vis);
ans+=find(i);
}
printf("%d\n",k-ans/2);
}
return 0;
}
相关文章推荐
- 匈牙利算法求二分图的最大匹配/匈牙利算法模板
- 洛谷 P3386 二分图最大匹配模板
- hdu 2255 二分图最大权匹配 km算法模板
- POJ-1274 The Perfect Stall (二分图最大匹配模板题)
- hdoj 2063 过山车 (二分图-最大匹配模板)
- 匈牙利算法,二分图最大匹配、多重匹配模板
- 二分图最大匹配(匈牙利算法-DFS增广模板)
- 二分图最大匹配算法-Hopcroft-Karp模板
- 二分图最大权匹配--KM算法模板
- SPOJ 4206 Fast Maximum Matching (二分图最大匹配 Hopcroft-Carp 算法 模板)
- [模板]二分图最大权匹配
- 二分图最大匹配模板
- hdu 2063 过山车 二分图的最大匹配模板。。感觉模板代码很简洁
- 二分图最大匹配 匈牙利算法模板
- 二分图最大匹配(匈牙利算法Dfs模板)
- 二分图最大权最小权完美匹配模板KM
- 51Nod 飞行员配对(二分图最大匹配)(匈牙利算法模板题)
- HDU 2444 The Accomodation of Students(最大二分匹配(匈牙利算法)+二分图判断->模板题目)
- (模板)二分图最大匹配,最大流算法
- Hopcroft-Karp算法模板(解决二分图最大匹配问题)