与经典的矩阵取整问题类似,构图方法也一样
这题是有上下界的网络流,一般这类型的题,如果有源汇,汇点像源点连一条下届为0,上届为无穷的边,这样,变成了无源汇的网络流,流量
守恒仍满足,然后,将它转换成一般的网络流类型,求解是否有可行流
对于下界 Low = (u, v, -), 上界 Up = (u, v, +) 我们可以做差得到 g(u,v) = Up - Low,从而得到了另一个网络 .
由于必须再原网络中满足流量守恒,于是有:
于是说白了 D(u)实际上 是固定的.
于是为了满足流量守恒,添加新的源汇S ,T
(1)如果 D(u) > 0,那么有 S-> u 添加流量D(u)的边
(2)如果 D(u) < 0,那么有 u -> T 添加流量 - D(u)的边(转自别人的解题报告)
如果最后与源点相连的边全部满流,则存在可行流,否则,至少有一个点不满足流量守恒
最后输出矩阵时,我用一个数组记录新图中的流值,matrix[i][j]=low[i][j]+f[i][j](f为新图中的流值)
注意记录f中的数据时别忘记回流,因为这个WA了几次
这道题上下界的确定很麻烦,要注意的是限制是>或<时,界是取不到的,需要分别+1,-1处理
代码: