CF1383F

CF1383F

给定一张 (n) 个点 (m) 条边的无向图 (G),给定 (k) 条特殊边,进行 (q) 次查询,每次给定这 (k) 条边的权值,查询这个状态下 (1 o n) 的最大流。

(n,mle 10^4,kle 10,qle 2 imes 10^5)

( m Sol:)

观察到最大流等于最小割,所以可以枚举这 (k) 条边被割/不被割,对于被割,将这条边的边权设为 (0),否则设为 (infty)

然后跑最大流可以进行预处理,然后可以轻易的做到 (mathcal O(2^k)) 进行查询,复杂度为 (mathcal O(2^kcdot extrm{maxflow}(n,m)+qcdot 2^k))

事实上,可以预处理不含这 (k) 条边时的最大流的残量网络,然后每次在这个网络上增广即可,注意到插入的边权和很小,可以考虑采取 EK/FF 算法来解决此问题,复杂度为 (mathcal O(2^k imes wm))

然后由于 Hack 数据,转移的时候不能暴力加边,而是要枚举最小的 bit 转移过来。

然后这个题就做完了。FF 算法增广时要遇到 (n) 就 break,不然过不去。

原文地址:https://www.cnblogs.com/Soulist/p/13653465.html