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個月訂購計畫,才能使成本最低?每月月初訂購,訂購後產品立即到貨,進庫並 市場,於當月被售掉則不必付存貯費。...