
图论~二分图匹配
哇-WA
这个作者很懒,什么都没留下…
展开
-
匈牙利算法
匈牙利算法算法讲解请移步大神博客:趣写算法系列之--匈牙利算法,很骚题目链接:月老的难题邻接表+匈牙利算法代码:#include#include#include#includeusing namespace std;int n,m,girl[510];bool used[510];vector love[510];bool find(int bo原创 2017-07-25 19:31:21 · 356 阅读 · 0 评论 -
HDU - 1045 Fire Net【离散化+二分图匹配】
Fire NetTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 14174 Accepted Submission(s): 8577Problem DescriptionSuppose that we have a square ci...原创 2018-05-17 11:27:59 · 189 阅读 · 0 评论 -
POJ - 3041 Asteroids 【最小点覆盖】
AsteroidsTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 25309 Accepted: 13659DescriptionBessie wants to navigate her spaceship through a dangerous asteroid field in the shape of an N x N gr...原创 2018-05-17 15:58:24 · 176 阅读 · 0 评论 -
HDU - 2063 过山车【匈牙利算法模板】
题目链接:HDU - 2063 匈牙利算法模板。大概过程就是对一个点进行匹配时,尝试匹配所有与它相连的点。如果这个点没有被匹配,或者这个点被匹配了,但是匹配它的点可以重新找到一个匹配点,从而腾出这个点,那么就可以与这个点匹配。used数组标记遍历到的v。如果不标记,增广过程中一个点会重复匹配v。最大匹配就是对一边所有的点尝试匹配,看有多少成功匹配的。代码:#include<stdio.h&g...原创 2018-05-15 20:42:06 · 219 阅读 · 0 评论 -
HDU - 1281 棋盘游戏 【二分图匹配】
题目链接:HDU - 1281 将点的行缩为一个点,列缩为一个点,那么一个点就可以抽象为一条边。本题可以用行匹配列,一行或一列不能有多个匹配。那么为题就转化成了二分图匹配问题。先计算出图的最大匹配,然后每次删一个点,判断最大匹配是否减少,如果减少那么这个点就是一个重要点。代码:#include<stdio.h>#include<string.h>#include<...原创 2018-05-15 21:20:39 · 197 阅读 · 0 评论 -
km算法入门
km算法入门本文知识均由笔者自学,文章有错误之处请不吝指出。 笔者刷数模题的时候有一道题考到了“二分图最大权分配”,需要用到KM算法,但是书上对KM算法的介绍又臭又长,更何况有些同学“匈牙利算法”也没学过(由匈牙利数学家Edmonds提出),自然难以理解所谓的KM算法。本文旨在用通俗易懂的语言,向读者介绍匈牙利算法和KM算法。 一、匈牙利算法匈牙利算法用于解决什么问题?...转载 2018-08-15 22:54:29 · 2915 阅读 · 3 评论 -
带权二分图最优匹配-KM算法【模板】
KM算法过程简述:一开始只加入每个点所连权值最大的边,跑一次匈牙利算法。逐步加入权值较小的边跑匈牙利,判断答案是否更优。加边的过程将边权分摊成了点权。例题:HDU - 2255 模板:#include<stdio.h>#include<string.h>using namespace std;#define M 310#define inf 0...原创 2018-08-23 16:46:46 · 512 阅读 · 0 评论