乙個餐廳在相繼的 nn 天裡,每天需用的餐巾數不盡相同。假設第 ii 天需要 r_iri塊餐巾( i=1,2,...,n)。餐廳可以購買新的餐巾,每塊餐巾的費用為 pp 分;或者把舊餐巾送到快洗部,洗一塊需 m 天,其費用為 f 分;或者送到慢洗部,洗一塊需 nn 天(n>mn>m),其費用為 ss 分(ss每天結束時,餐廳必須決定將多少塊髒的餐巾送到快洗部,多少塊餐巾送到慢洗部,以及多少塊儲存起來延期送洗。但是每天洗好的餐巾和購買的新餐巾數之和,要滿足當天的需求量。
試設計乙個演算法為餐廳合理地安排好 nn 天中餐巾使用計畫,使總的花費最小。程式設計找出乙個最佳餐巾使用計畫。
由標準輸入提供輸入資料。檔案第 1 行有 1 個正整數 nn,代表要安排餐巾使用計畫的天數。
接下來的一行是餐廳在相繼的 nn 天裡,每天需用的餐巾數。
最後一行包含5個正整數p,m,f,n,sp,m,f,n,s。pp 是每塊新餐巾的費用; mm 是快洗部洗一塊餐巾需用天數; ff 是快洗部洗一塊餐巾需要的費用; nn 是慢洗部洗一塊餐巾需用天數; ss 是慢洗部洗一塊餐巾需要的費用。
將餐廳在相繼的 n 天裡使用餐巾的最小總花費輸出
/** p1251餐巾計畫問題
* 題意:
* 乙個餐廳在相繼的n天裡,每天需用的餐巾數不同。
* 假設第i天需要ri塊餐巾。
* 餐廳可以購買新的餐巾,每塊餐巾的費用為p分。
* 或者把舊餐巾送到快洗部,洗一塊需要m天,其費用為f分。
* 或者送到慢洗部,洗一塊需要n天,其費用為s分。
* 每次結束時,餐廳必須決定將多少塊髒的餐巾送到快洗部,多少塊髒的餐巾送到慢洗部,以及多少塊儲存起來延期送洗,
* 但是每天洗好的餐巾和購買的新餐巾數之和,要滿足當天的需求量。
* 輸出在n天裡使用餐巾的最小總花費。
* 題解:
* 最小費用最大流。
* 首先,拆點,把每天拆成早上和晚上。每天晚上會受到髒餐巾,每天早上又有乾淨的餐巾。
* 1.從源點向每天晚上連一條流量為當天所用餐巾x,費用為0的邊,表示每天晚上從起點獲得x條髒餐巾。
* 2.從每一天早上向匯點連一條流量為當天所用餐巾x,費用為0的邊,每天白天,表示從匯點提供x條乾淨的餐巾,流滿時表示第i天的餐巾夠用。
* 3.每一天晚上向第二天晚上連一條流量為inf,費用為0的邊,表示每天晚上可以將髒餐巾留到第二天晚上。
* 4.每一天晚上向這一天+快洗所用天數那一天早上連一條流量為inf,費用為快洗所用錢數的邊,表示每天晚上可以送去快洗部,在第i+t1天早上收到餐巾。
* 5.同理,每一天晚上向這一天+慢洗所用天數的那一天早上連一條流量為inf,費用為慢洗所用錢數的邊,表示每天晚上可以送去慢洗部,在第i+t2天早上收到餐巾。
* 6.從起點向每天早上連一條流量為inf,費用為購買餐巾所用錢數的邊,表示每天早上可以購買餐巾。 */
#include
using
namespace
std;
typedef
long
long
ll;const
int maxn=1e5+100
;const ll inf=1e18;
inthead[maxn];
inttot;
ints,t;
ll dis[maxn];
intpre[maxn];
intlst[maxn];
ll flow[maxn];
intvisit[maxn];
ll maxflow;
ll mincost;
struct
node edge[maxn];
void addedge (int u,int
v,ll flow,ll dis)
bool spfa (int s,int
t) }}}
return pre[t]!=-1;}
void
mcmf ()
}} int
a[maxn];
intmain ()
for (int i=1;i<=n;i++)
for (int i=1;i)
for (int i=1;i<=n;i++)
for (int i=1;i<=n;i++)
for (int i=1;i<=n;i++)
mcmf();
printf(
"%lld\n
",mincost);
}
洛谷P1251 餐巾計畫問題 最小費用最大流
一家餐廳,第 i 天需要 r i 塊餐巾,每天獲取餐巾有三種途徑 1 以 p 的費用買 2 以 f 的費用送到快洗部,並在 m 天後取出 3 以 s 的費用送到慢洗部,並在 n 天後取出 問滿足要求時的最小費用 一道非常不錯的網路流,應該不難看出是費用流。首先進行拆點,把每個點早上和晚上,然後進行連...
nefu488餐廳計畫問題(最小費用最大流)
餐廳計畫問題 乙個餐廳在相繼的n 天裡,每天需用的餐巾數不盡相同。假設第i天需要ri塊餐巾 i 1,2,n 餐廳可以購買新的餐巾,每塊餐巾的費用為p分 或者把舊餐巾送到快洗部,洗一塊需m天,其費用為f 分 或者送到慢洗部,洗一塊需n 天 n m 其費用為s f 分。每天結束時,餐廳必須決定將多少塊髒...
網路流之最小費用最大流 P1251 餐巾計畫問題
乙個餐廳在相繼的 nn 天裡,每天需用的餐巾數不盡相同。假設第 ii 天需要 r iri 塊餐巾 i 1,2,n 餐廳可以購買新的餐巾,每塊餐巾的費用為 pp 分 或者把舊餐巾送到快洗部,洗一塊需 m 天,其費用為 f 分 或者送到慢洗部,洗一塊需 nn 天 n mn m 其費用為 ss 分 ss每...