【hdu1083Courses(java)二分最大匹配-匈牙利算法】教程文章相关的互联网学习教程文章

匈牙利算法【代码】【图】

0 - 相关概念 0.1 - 匈牙利算法匈牙利算法是由匈牙利数学家Edmonds于1965年提出,因而得名。匈牙利算法是基于Hall定理中充分性证明的思想,它是二部图匹配最常见的算法,该算法的核心就是寻找增广路径,它是一种用增广路径求二分图最大匹配的算法。 0.2 - 二分图若图$G$的结点集合$V(G)$可以分成两个非空子集$V_1$和$V_2$,并且图$G$的任意边$xy$关联的两个结点$x$和$y$分别属于这两个子集,则$G$是二分图。 1 - 基本思想找到当前结...

bzoj 1433: [ZJOI2009]假期的宿舍【匈牙利算法】

i能睡j床的连边(i,j),跑最大匹配或者最大流,然后看看人数能不能对上总数即可 #include<iostream> #include<cstdio> #include<cstring> using namespace std; const int N=1005; int T,n,a[N],b[N],h[N],cnt,con,ans,lk[N],v[N],ti; struct qwe {int ne,to; }e[N*N]; void add(int u,int v) {cnt++;e[cnt].ne=h[u];e[cnt].to=v;h[u]=cnt; } bool dfs(int u) {for(int i=h[u];i;i=e[i].ne)if(v[e[i].to]!=ti){v[e[i].to]=ti;if(!lk...