如果优化建图跑费用流,需要跑一次边数为 4n+m,点数为 2n 的费用流,朴素的最短增广路算法或者是 zkw 费用流算法复杂度都是 O(VEF)=O(n2m)。使用 Capacity Scaling 费用流可以得到 O(VElogU)=O(nmlogn) 的做法,然而实测 TLE。
如果写 KM 算法,复杂度是 O(n3+m),建图后点数达到 1000,而且之前还需要跑一遍 Floyd 。
上述算法的复杂度代入数据范围得到的数值似乎只有实际测试中 TLE 的 Capacity Scaling 费用流在 1s 的合理范围内,其他做法通过可能只是没有针对算法的数据。因此建议开大时限,例如至 3s。