題目鏈結點這裡
顯然點可以分為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 ...