poj 2195(最小費用流)

2022-07-19 13:45:25 字數 748 閱讀 5741

題意:給你乙個n*m的地圖,h代表這個點有乙個房子,m代表這個點是乙個人,每次h走一步就花費一,問最小花費使得每個人能進入乙個房間

**:建立乙個源點和匯點,每個人和源點相連,每個房子和匯點相連,每個人和每個房子相連,花費為曼哈段距離

**:

#include#include#include#include#includeusing namespace std;

const int maxn=1005000;

const int inf=0x3f3f3f3f;

struct node

h[50050],man[50050];

int cntm,cnth;

struct edge

edge[maxn];

int head[50050],dist[50050],pre[50050],path[50050];

int start,end;

char s[1050][1050];

int cnt,x,y,w,n,m,tx,ty;

void add(int u,int v,int w,int cost)

if(s[i][j]=='h')

}for(int i=1;i<=cnth;i++)

for(int i=1;i<=cntm;i++)

for(int i=1;i<=cntm;i++)

}int ans=mincost(start,end);

cout<}

}

poj 2195 最小費用最大流

題意 給出一張圖,m代表人,h代表house,問所以的人走到house裡的最小花費 每步花費1 5 5 hh.m mm.h簡單題目直接 include include include include includeusing namespace std const int m 102 const i...

poj 2195 最小費用最大流

題意 n個人和m個房子,每個房子中要安排乙個人,每個人移動一步費用為1,所有人安排房子後需要的金錢的最小值。曼哈頓距離 例如在平面上,座標 x1,y1 的i點與座標 x2,y2 的j點的曼哈頓距離為 d i,j x1 x2 y1 y2 建圖 網路流,建乙個超源 0,超匯 e 1 超源 0 到 所有人...

POJ 2195 最小費用最大流

題目大意 給定一張網格圖,每個人需要回到乙個房子裡並且乙個房子只能容納乙個人,問所有人加起來的最短路徑是多少 題目解析 看到匹配,肯定是網路流了,有個坑點,題目說只要進入乙個房子就不能走了,照道理有的房子是走不到的應該要bfs,然而並沒有,構圖簡單不多說 ac include include inc...