这篇文章主要介绍了二分图匹配实例代码及整理的相关资料,这里提供了三种方法包括匈牙利算法,KM算法,多重匹配,需要的朋友可以参考下
二分图匹配实例代码及整理
1、匈牙利算法
HDU 1150
#include#include #include using namespace std; int m,n,k; int vis[105]; int mpt[105][105]; int use[105]; int hungary(int x) { for(int i=1;i
2、KM算法
HDU 2255
看了很多资料都还不是很懂、、先贴别人的模板
#include#include #include #include #include using namespace std; #define N 310 int map[N][N]; bool visitx[N], visity[N]; int lx[N], ly[N]; int match[N]; int n; bool Hungary(int u) //匈牙利算法 { visitx[u] = true; for(int i = 0; i lx[j] + ly[k] - map[j][k]) temp = lx[j] + ly[k] - map[j][k]; for(int j = 0; j
3、多重匹配
HDU 3605 Escape
#include#include #include using namespace std; int n,m; int num[15]; int mpt[100005][15]; int vis[15]; int use[15]; int dp[15][100005]; int hungary(int x) { for(int i=1;i<=m;i++) { if(vis[i]==0&&mpt[x][i]==1) { vis[i]=1; if(use[i]
以上就是二分图匹配的实现代码,如有疑问请留言,或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
以上就是二分图匹配实例代码及整理的详细内容,更多请关注0133技术站其它相关文章!