網路流 HAOI2010 訂貨

2021-10-02 05:57:13 字數 1557 閱讀 9324

luo

gu

luogu

luog

u2517

2517

2517

某公司估計市場在第i個月對某產品的需求量為ui,已知在第i月該產品的訂貨單價為di,上個月月底未銷完的單位產品要付存貯費用m,假定第一月月初的庫存量為零,第n月月底的庫存量也為零,問如何安排這n個月訂購計畫,才能使成本最低?每月月初訂購,訂購後產品立即到貨,進庫並**市場,於當月被售掉則不必付存貯費。假設倉庫容量為s。

第1行:n, m, s (0<=n<=50, 0<=m<=10, 0<=s<=10000)

第2行:u1 , u2 , … , ui , … , un (0<=ui<=10000)

第3行:d1 , d2 , …, di , … , dn (0<=di<=100)

只有1行,乙個整數,代表最低成本

3 1 1000

2 4 8

1 2 4

34
最小費用最大網路流

下面講一下建圖:

建乙個源點,與每乙個月連線上,費用是物品單價,容量無限大,因為可以買無限個物品

然後每個月之間可以繼承物品,費用就是貯存費用,容量是倉庫容量

最後建乙個匯點,與每乙個月的連線起來,費用是0(賣出不需要成本), 容量是每月需求量

然後配上最小費用最大流模板就a了

#include

#include

#include

#include

using

namespace std;

const

int inf =

1e9;

int n, m, s, t, tt, ans, s;

int u[

10005

], d[

10005

], c[

10005

], h[

10005

], dis[

10005

], prev[

10005];

struct node

g[100005];

void

add(

int x,

int y,

int flow,

int val)

; h[x]

= tt;

//正向邊

g[++tt]

=(node)

; h[y]

= tt;

//反向邊

}bool

spfa()

}}c[x]=0

;}if(dis[t]

== inf)

return0;

else

return1;

}void

mcf(

) ans +

= flow_ * dis[t]

; x = t;

while

(prev[x])}

intmain()

費用流 HAOI2010 訂貨

有乙個容量為ma xsm ax s的倉庫,其每存乙個月就要話費co stc os t元,給定每個月的需求量和商品單價,求出最少要用多少錢可以 所有的市場 超源點設為批發商 超匯點設為市場 將批發商與所有的月份連邊,容量為無窮大 可以買無限件 代價為di d i再將所有的月份與市場連邊,容量為ui u...

haoi2010 訂貨 最小費用流

這道題oj上的標籤是動態規劃,但我想不出來動態規劃怎麼搞,空間不爆,時間也要爆的 好的,不扯淡,此題正常做法是最小費用流 這道題我寫了兩遍,為什麼呢?原因是第一次寫的時候,不會寫費用流,又恰好沒帶書,所以擱置了 第二次又寫到這道題了,有點生氣,一鼓作氣學了費用流,緊跟著敲了這道題 也算一道費用流模板...

2424 HAOI2010 訂貨 費用流

某公司估計市場在第i個月對某產品的需求量為ui,已知在第i月該產品的訂貨單價為di,上個月月底未銷完的單位產品要付存貯費用m,假定第一月月初的庫存量為零,第n月月底的庫存量也為零,問如何安排這n個月訂購計畫,才能使成本最低?每月月初訂購,訂購後產品立即到貨,進庫並 市場,於當月被售掉則不必付存貯費。...