POJ 2396 Budget

47 篇文章 0 订阅

 

与经典的矩阵取整问题类似,构图方法也一样
这题是有上下界的网络流,一般这类型的题,如果有源汇,汇点像源点连一条下届为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处理
代码:
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值