
KM 匈牙利
文章平均质量分 69
markpen
这个作者很懒,什么都没留下…
展开
-
KM算法
先说KM算法求二分图的最佳匹配思想,再详讲KM的实现。【KM算法求二分图的最佳匹配思想】对于具有二部划分( V1, V2 )的加权完全二分图,其中 V1= { x1, x2, x3, ... , xn }, V2= {y1, y2, y3, ... , yn },边具有权值 Wi,j。该带权二分图中一个总权值最大的完美匹配,称之为最佳匹配。 记 L(x) 表示结点 x的转载 2014-07-17 08:58:28 · 713 阅读 · 0 评论 -
poj 3041
定点覆盖#include #include #include #define Max 500using namespace std;int n,k;int _map[1000][1000];int link[1000],vis[1000];int dfs(int t){ for(int i=0;i<n;i++) { if(!vis[i]&&_ma原创 2014-07-16 10:36:28 · 401 阅读 · 0 评论 -
poj 2446
二分图练习#include #include #include using namespace std;const int MAX=33;bool map[MAX][MAX];int match[MAX*MAX+MAX+1];int visit[MAX*MAX+MAX+1];int Left[MAX*MAX];int n,m,k;int x,y;int chx[]={-1,0原创 2014-07-16 09:58:37 · 428 阅读 · 0 评论 -
poj 3686
KM练习#include #include #include #define MAX 3000using namespace std;int n,m;int _map[1000][1000],fmap[3000][3000];int visx[MAX],visy[MAX],lx[MAX],ly[MAX],link[MAX],d,slack[100020];void build(原创 2014-07-17 13:18:27 · 493 阅读 · 0 评论 -
poj 2060
最小顶点覆盖练习#include #include #include using namespace std;int _map[505][505];int t,num;int mark[1000],link[1000];struct book{ int st,et,a,b,c,d;}bo[1000];int _abs(int a,int b){ return原创 2014-07-15 21:55:56 · 406 阅读 · 0 评论 -
poj 3565
KM练习这个过le#include #include #include #include using namespace std;int n;double fmap[1000][1000];int visx[1000],visy[1000],link[1000];double lx[1000],ly[1000],slack[1000],d;struct tree{原创 2014-07-17 16:45:36 · 417 阅读 · 0 评论 -
poj 1422
最小定点覆盖练习原创 2014-07-15 21:52:01 · 427 阅读 · 0 评论 -
poj 2195
KM 练习#include #include #include #define INF 9999999using namespace std;int n,m,mnum,hnum;int _map[1000][1000],link[1000],vis[1000];int visx[1000],visy[1000],lx[1000],ly[1000];int slack[1000];原创 2014-07-17 10:03:15 · 342 阅读 · 0 评论 -
poj 1274
二分匹配练习#include #include #include using namespace std;int _map[1000][1000];int vis[1000],link[1000];int n,m;int dfs(int k){ for(int i=0;i<m;i++) { if(!vis[i]&&_map[k][i])原创 2014-07-16 00:34:17 · 415 阅读 · 0 评论