需要讨论的几个问题
查看原帖
需要讨论的几个问题
22030
StudyingFatherDreamer楼主2020/9/26 15:50

讨论版里有几个帖子指出了本题的一些问题,考虑到这些问题可能有一些讨论价值,开个帖子整合一下。

  1. 本题没有指出流量和费用的完整值域。

228762

算是非常致命的问题...这意味着流量和费用都可以无穷大。

需要完善数据范围以解决本问题。不过也很难绕过接下来提到的第三个问题。


下面两个问题就和本题没有太多关系了。

  1. 消圈?

OI 中的绝大多数费用流模型(包括本题)都不存在负环,此时 SSP 算法可以正常求解最小费用最大流。

但是在一些特殊情况下(如 UOJ 487)中会存在负环,此时 SSP 算法无法正确求解,需要先消圈。

另外在这种情况下还会存在一个概念性问题:一个合法的流只需满足容量限制与流量平衡,一个与 s,ts, t 不连通的环也可以有流量。

  1. SSP 算法的时间复杂度是伪多项式的。

SSP 算法的时间复杂度与增广次数有关,最坏情况下,增广次数可能与最大流同阶。这意味着 SSP 算法无法通过本题数据范围内的所有数据(即使限制了流量的值域)。

目前有不少比 SSP 更优的弱多项式/多项式时间复杂度求解最小费用最大流的算法。如 基于 Capacity Scaling 的弱多项式复杂度最小费用流算法

不过在 OI 界中,因为数据大多随机,SSP 算法的实际效率还是比较高的。


好了,问题列举的差不多了。

对于本题而言,考虑到本题主要还是用来测试 SSP 的板子,可以考虑在修正数据范围的同时,加上一句保证数据随机

另外是否有必要开一个增强版的模板来 cover 上面的第二个和第三个问题呢?欢迎各位讨论。

2020/9/26 15:50
加载中...