跳过正文
  1. Posts/

KM算法总结

·1 分钟

km算法我的理解

刷了不到20道题。。。回来总结一发。。

如果题目求的是最小权值匹配,比较好的做法是将权值取取值,最后res再取负就好。需要注意的是初始化的时候w和lx要比所有值都小,所以要ms(lx,0xc0)

最正确解最小权匹配的办法是用一个很大的数-当前边权值,而不是直接对边权取反(这样只能处理左右点相等的完全二分图,即K(n, n)(bin神博客看到的)

有时候需要考虑无解的情况,一般如果有无解的情况,对应了存在lx[i]=初始化的值。

不少题目有一个点都是先用一种暴力或者不暴力的方法处理出w,然后裸的km  hdu3722解题报告

有向图的覆盖可以对应二分图最佳匹配的模型,用km算法搞 hdu1853解题报告

遇到了一种题是之前有一些已经安排好了,然后仍然求最优匹配,并且尽可能少得改变原有的安排。hdu2853解题报告 不得不说做法很厉害。

还有一些网络流的题似乎也可以转化成km来做,打算先去搞一发网络流再去A.

这些题里就两个比较好,一个是对于有向环覆盖的,第一次遇到真想不到,还有一个就是那个权值×k的。。。佩服。。。

其他的都是套路。

相关文章

hdu 2853 Assignment (二分图最佳匹配,KM算法+数论,做法太神)

hdu 2853题目链接 题意:n个公司,m个任务(m>=n),一个公司只能对应一个任务,一个任务也只能对应一个公司。给出一个n*m的mat,表示每个公司对应每个任务产生的val。 然后给出n个数,表示初始钦定(雾)这n个公司分别做哪些任务。 但是可能初始的安排得到的val表示最大的。我们现在想得到最大的val,并且保证改变的安排数最少。求安排后得到的 val比初始安排大多少,以及需要改变的安排数量。

hdu 3718 Similarity (二分图最优匹配,KM算法)

·2 分钟
hdu 3718题目链接 题意:东西分类作业,有n个东西,k组,m个学生,不同种类的东西用不同的字母表示,相同种类的用同一个字母表示。不同学生和标准答案之间可能表示同一类东西用的字母不同,但是字母只是一个标号(But the LABEL of group doesn’t make sense and the LABEL is just used to indicate different groups. ) 给出事物分类的标准答案和每个学生的答案现在问每个学生的正确率是多少。