标签:算法 http logs alt 慢慢 原则 期望值 复杂度 任务
其实这是一个很玄学的算法,我也不是很懂。但是慢慢地写,就慢慢地懂了。
我们先看到这样一个例子:
现有n个男生和n个女生,每一个女生对于一个男生都有一个期望值。现在想知道期望值最大是多少。
那么显然,我们需要一种算法来完成这个任务,KM腾空出世!
在此之前,我们需要了解一些东西:
期望值:女生连的边中边权最大的值,称之为女生的期望值
l(x)+l(y)>=w(i,j)
当l(x)+l(y)=w(i,j)时,是M图的完美匹配!
原则
做法
以上代码的复杂度为O(n^4)
有一些优化可以使代码复杂度降为O(n^3),由EK提出
显然,每一次修改,我们都不停地在计算l(x)+l(y)-w(x,y),不妨设一个变量slack表示l(x)+l(y)-w(x,y),那么显然,我们每一次查询就从O(n^2)变成了O(n),每一次修改的复杂度为O(1)
标签:算法 http logs alt 慢慢 原则 期望值 复杂度 任务
原文地址:http://www.cnblogs.com/cj-gjh/p/7954895.html