网络流24题c语言解法,【网络流24题】----题解(部分,持续更新...)

搭配飞行员

搭配飞行员:http://cogs.yeefan.us/cogs/problem/problem.php?pid=14

题解:建立虚拟源点汇点,然后水过

code:http://cogs.yeefan.us/cogs/submit/code.php?id=148410

数字梯形

数字梯形:http://cogs.yeefan.us/cogs/problem/problem.php?pid=738

题解:

规则(1)

把梯形中每一个位置抽象为两个点(i.a),(i.b),建立附加源S汇T。

1、对每一个点i从(i.a)到(i.b)连接1条容量为1,费用为点i权值的有向边。

2、从S向梯形顶层每一个(i.a)连1条容量为1,费用为0的有向边。

3、从梯形底层每一个(i.b)向T连1条容量为1,费用为0的有向边。

4、对每一个点i和下面的两个点j,分别连1条从(i.b)到(j.a)容量为1,费用为0的有向边。

求最大费用最大流,费用流值就是结果。

规则(2)

把梯形中每一个位置看作1个点i,建立附加源S汇T。

1、从S向梯形顶层每一个i连1条容量为1,费用为0的有向边。

2、从梯形底层每一个i向T连1条容量为无穷大,费用为0的有向边。

3、对每一个点i和下面的两个点j,分别连1条从i到j容量为1,费用为点i权值的有向边。

求最大费用最大流,费用流值就是结果。

规则(3)

把梯形中每一个位置看作1个点i,建立附加源S汇T。

1、从S向梯形顶层每一个i连1条容量为1,费用为0的有向边。

2、从梯形底层每一个i向T连1条容量为无穷大,费用为0的有向边。

3、对每一个点i和下面的两个点j,分别连1条从i到j容量为无穷大,费用为点i权值的有向边。

求最大费用最大流,费用流值就是结果。

其实第2个和第3个都很好处理,就是第1个有些麻烦,对这个题,我们建立n排点还是比较好写的

code:http://cogs.yeefan.us/cogs/submit/code.php?id=157717

负载平衡

负载平衡:http://cogs.yeefan.us/cogs/problem/problem.php?pid=741

题解:

首先求出所有仓库存货量平均值,设第i个仓库的盈余量为A[i],A[i] = 第i个仓库原有存货量 - 平均存货量。建立2分图,把每一个仓库抽象为两个节点Xi和Yi。增设附加源S汇T。

1、如果A[i]>0,从S向Xi连1条容量为A[i],费用为0的有向边。

2、如果A[i]<0,从Yi向T连1条容量为-A[i],费用为0的有向边。

3、每一个Xi向两个相邻顶点j,从Xi到Xj连接1条容量为无穷大,费用为1的有向边,从Xi到Yj连接1条容量为无穷大,费用为1的有向边。

求最小费用最大流,最小费用流值就是最少搬运量。

code:http://cogs.yeefan.us/cogs/submit/code.php?id=157626

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值