LOJ6013 負載平衡 最小費用最大流

2021-09-27 18:31:59 字數 1529 閱讀 8050

題目描述見鏈結 .

將倉庫分為兩個型別, 第乙個型別為稀缺貨物的倉庫

\, a

ia_i

ai​ 較平均值少 x

ix_i

xi​,

第二個型別為富餘貨物的倉庫

\, b

ib_i

bi​ 較平均值多 y

iy_i

yi​,

然後建立超級源點s

ss 和超級匯點ttt,

#include

#define reg register

intread()

while

(isdigit

(c)) s = s*

10+ c-

'0', c =

getchar()

;return s * flag;

}const

int maxn =

505;

const

int inf =

0x3f3f3f3f

;const

int s =

101, t =

102;

int n;

int ans;

int num0;

int tmp_1;

int a[maxn]

;int dis[maxn]

;int head[maxn]

;int pre[maxn][2

];bool vis[maxn]

;struct edge edge[maxn <<2]

;void

add(

int from,

int to,

int w,

int cup,

int flow)

; head[from]

= num0;

}bool

spfa()

}}return dis[t]

!= inf;

}void

mmflow()

ans +

= mf * dis[t]

, t = t;

while

(t != s)}}

intmain()

for(reg int i =

1; i <= n; i ++

)add(1

, n,

1, inf,0)

,add

(n,1,-

1,0,

0);add

(n,1,1

, inf,0)

,add(1

, n,-1

,0,0

);mmflow()

;printf

("%d\n"

, ans)

;return0;

}

loj6013 網路流 24 題 負載平衡

題目描述 g 公司有 n n n 個沿鐵路運輸線環形排列的倉庫,每個倉庫儲存的貨物數量不等。如何用最少搬運量可以使 n n n 個倉庫的庫存數量相同。搬運貨物時,只能在相鄰的倉庫之間搬運。輸入格式 檔案的第 1 1 1 行中有 1 1 1 個正整數 n n n,表示有 n n n 個倉庫。第 2 2...

1754 負載平衡問題(最小費用最大流)

題意 g 公司有n 個沿鐵路運輸線環形排列的倉庫,每個倉庫儲存的貨物數量不等。如何用最 少搬運量可以使n 個倉庫的庫存數量相同。搬運貨物時,只能在相鄰的倉庫之間搬運。程式設計任務 對於給定的n 個環形排列的倉庫的庫存量,程式設計計算使n 個倉庫的庫存數量相同的最少搬運量。思路 貪心是很好想的,不過這...

負載平衡問題 網路流24題 最大流最小費用

注意題意 環形 不然怎麼也算不明白為什麼樣例是那樣的 發現這道題竟然是一道費用流,是因為移動每乙個貨物可以看成是挪動一次代價為1,這樣子想就可以建邊了,從源點出發到每個節點是每個節點的擁有數,而每個節點到匯點的容量是那個平均數。然後對於每個相鄰的節點連線上邊並且單位流的代價是1。include in...