hdu 3228 最大流 二分

2021-06-17 22:11:11 字數 860 閱讀 2398

題意:一共有n個城市,一些城市裡有金礦,一些城市裡有倉庫,金礦和倉庫都有乙個容量,有m條邊,每條邊是雙向的,有乙個權值,求將所有金礦裡的儲量都運送到倉庫中,所需要經過的道路中,使最大的權值最小

思路:增設乙個超級源點和乙個超級匯點,源點與每乙個城市相連,容量為**數量,匯點與倉庫相連,容量為倉庫的容量,然後就是二分最小的最大相鄰距離,跑最大流驗證。

#include#includeconst int n=410;

const int inf=0x3fffffff;

int dis[n],gap[n],head[n],num,start,end,ans,n,m;

int v1[n],v2[n];

struct edge

e[210000];

struct node

p[100000];

void addedge(int x,int y,int w)

int dfs(int u,int minflow)

min_dis=min_dis>dis[v]?dis[v]:min_dis;

} }if(flow==0)

return flow;

}int isap()

scanf("%d",&m);

for(i=0;i

POJ3228二分最大流

題意 有n個點,每個點有兩個權值,金子數量還有倉庫容量,金子可以存在自己的倉庫裡或者是別的倉庫裡,倉庫和倉庫之間有距離,問所有金子都必須存到庫里最大距離的最小是多少?思路 比較簡單,方法也不唯一,大體可以這樣,先二分,然後用最大流或者匹配.來判斷是不是滿足就行了,我用的是二分最大流,具體 在下面。i...

poj 3228 二分 最大流 dinic

有n座town 每座town都有一定數量gold和倉庫 倉庫的容量是有限的 有m條雙向路徑 求把所有的gold 運到倉庫最小的最大距離是多少 思路 增設乙個超級源點和乙個超級匯點,源點與每乙個gold相連,容量為gold數量,匯點與倉庫相連,容量為倉庫的容量,然後就是二分最小的最大相鄰距離,跑最大流...

hdu 3277 二分 並查 最大流

題意 和3081差不多 只是多了乙個條件,每個女生可以選最多k個不喜歡的男生匹配 思路 將每個女孩u分為u1,u2,若u喜歡v則加一條u1到v的邊 容量為1 否則加一條u2到v的邊,容量為1 令加u1到u2的容量為k的邊 其他同3081一樣 源點到每個女生連容量為x的邊,男生到匯點連容量為x的邊,x...