線性規劃與網路流24 負載平衡問題

2021-07-26 10:41:16 字數 891 閱讀 2292

題目鏈結點這裡

顯然點可以分為2種,一種是大於平均值的,一種是小於平均值的,,作為二分圖的x,與y,,他們的邊相當於運輸,花費為距離,就轉化為最小費用問題了

#include#include#include#include#include#include#include#include#include#define mx 111

#define inf 0x3f3f3f3f

#define mem(x,y) memset(x,y,sizeof(x))

#define fin freopen("input.txt","r",stdin)

using namespace std;

int n;

int head[mx],rear;

struct edge

edge[mx*mx];

void edge_init()

void edge_add(int a,int b,int cap,int cost)}}

}if (pre[t]==-1) return 0;

else return 1;

}//返回的是最大流, cost存的是最小費用

int mcmf(int s,int t,int &cost)

return flow;

}int arr[mx];

int main()

{ fin;

while(~scanf("%d",&n))

{int s=0,t=n+1,sum=0;

edge_init();

for(int i=0; isum)

{edge_add(s,i+1,arr[i]-sum,0);

edge_add(i+1,s,0,0);

for(int j=0; j

線性規劃與網路流24題 19 負載平衡問題

從原點到每乙個倉庫連線,流為倉庫的值,費用0 從每乙個倉庫到匯點連線,流為平均值,費用0 相鄰的倉庫連線,流無限,費用1 跑出費用輸出就好了 include include include include define rep j,k,l for int j k j l j define n 105...

網路流 24 題 負載平衡

做法 這道題的隱含前提是這個數肯定能被n整除,所以我們一開始就知道每個點是要流出的還是流入的,那麼我們就可以根據這一點對每個點進行分類,將其分成要一定要流出的和要一定流入的,分別與源和匯相對應,即如果他要流出,那麼源點連向它,流量為其多出來的值,費用為0,流入點與匯點同理。同時,每個點還要與其相鄰的...

網路流24題 負載平衡(費用流)

cogs 很簡單的題面呀 源點向每個點連邊,容量為貨物量,費用為0 因為最後要每個倉庫的貨物都相同 所以從每個倉庫向匯點連邊,費用為0,容量為平均數 因為可以丟到相鄰的倉庫 所以向相鄰的倉庫連邊,費用為1,容量為inf 然後就是費用流 include include include include ...