Codeforces 267C 高斯消元解方程

题目要求在满足流量平衡和路径流量和恒定的条件下,找出流量网络的最大流量方案。通过建立势能概念,形成线性方程组,使用高斯消元求解初始解,然后结合边的流量限制优化,找到最大流量比例解。
摘要由CSDN通过智能技术生成

题目链接

首先,这个题还是蛮有意思的,,,

其次,一个sb的bug整了我一下午

题意:给出一个流量网络,告诉你每条边流量的上限,每个点(除了源点和汇点)都满足流量平衡,即流进 = 流出 ,还有一个关键的条件是对于任意的x y,从x走到y的流量和相等,流量和为从x到y每条边的流量相加(有正有负)。最后让你输出一种网络流的方案,使得总的流量最大


对于任意两个点,不管走哪条路径,流量和都是定值,这个有点类似于物理中的势能,从一个高度到达另一个高度,势能差不变,借此思路,可以设每个点的势能为x[i],那 边i j之间的流量就为x[j] - x[i],由每个点都满足流量守恒(除源汇外),可以列出n-2个方程来,举个例子,对于i这个点,枚举所有的邻接点j

x[i] - x[j1] + x[i] - x[j2] + x[j3] - x[i]  .... = 0 (要分 i->j  ,还是 j->i ,相应的系数就++ -- ) 

然后x1 和 xn随便设两个常数就好了,假设设为1 2 。

这样构造好方程解出来一组可行解,是忽略了每条边的流量限制的,现在,将每条边的流量限制放进去,可以算出每条边最大的容量

解是成比例的。



                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值