[网络流24题]餐巾计划问题

题目描述 Description一个餐厅在相继的 N 天里,每天需用的餐巾数不尽相同。假设第 i 天需要 ri块餐巾(i=1,2,…,N)。餐厅可以购买新的餐巾,每块餐巾的费用为 p 分;或者把旧餐巾送到快洗部,洗一块需 m 天,其费用为 f 分;或者送到慢洗部,洗一块需 n 天(n>m),其费用为 s<f 分。每天结束时,餐厅必须决定将多少块脏的餐巾送到快洗部,多少块餐巾送到慢洗部,以及多少块保存起来延期送洗。但是每天洗好的餐巾和购买的新餐巾数之和,要满足当天的需求量。试设计一个算法为餐厅合理地安排好 N 天中餐巾使用计划,使总的花费最小。编程找出一个最佳餐巾使用计划.


题解:

下面是构图

先把每个点拆点,假设是拆成node1,node2

然后我们可以分情况讨论,首先这两个点的流量为r[i]没问题吧

然后node1向node2向连一条inf的边,费用为0

node2要分情况讨论,

1:直接连向下一天的node2流量inf,费用0

2:连向后面第m天的node1,流量inf,费用1

3:连向后面第n天的node1,流量inf,费用1

然后S向每一个node1连一条r[i]的边,并且费用为p

然后最后一个点node2向T连一条sum r[i]的边

然后跑最小费用最大流

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值