最小費用最大流poj2516

2021-07-16 07:30:47 字數 1296 閱讀 1479

#include #include #include #include #include #include #include #include #include #define ll long long

#define inf 0x3f3f3f3f

using namespace std;

const int n = 1e3+10;

struct nodeedge[10000];

int head[n];//前向星

int sk[n][n];//商店需求量

int hk[n][n];//倉庫儲存量

int mk[n][n];//倉庫到商店的費用

int sn[n];//所有商店一共需要第k種物品多少

int hn[n];//所有倉庫一共儲存第k種物品多少

int pre[n];//記錄前驅,記錄的是edge的編號

int n,m,k,top;

int s,e,ans;

void init()

void add(int u,int v,int f,int c);

head[u] = top++;

}int dis[n];

bool vis[n];

bool ek_spfa()}}

}return pre[e]!=-1;

}bool ek_max_flow(int t)

for(int i = pre[e]; ~i; i = pre[edge[i^1].to])

flow_ans += mn;

}if(flow_ans != sn[t])return true;

ans += cost_ans;

return false;

}int main()

}//倉庫

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

}bool flag = false;

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

ans = 0;

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

}if(flag)continue;

init();

for(int j = 1; j <= m; ++j)

for(int j = 1; j <= n; ++j)

for(int j = 1; j <= m; ++j)

}flag = ek_max_flow(i);

}if(flag)

else

}return 0;

}

poj2516 最小費用最大流

include stdio.h 最小費用最大流 poj 2516 include string.h include queue using namespace std define n 115 define inf 1000000000 struct node edge 8 n n int stor...

poj2516(最小費用最大流模版)

首先就這題而言,各k互不影響,可以分開來算,累加即可 對於構圖來說,以後可以源點s 0,匯點t n m,其中一組點是1 n,另一組n 1 n m,注意可以這樣構圖 對於最小費用最大流,要用spfa來做最短路徑,只需記錄路徑即可 include include include include incl...

poj 2516 最小費用流

1 include 2 include 3 include 4 include 5 include 6 include 7 using namespace std 89 define inf 0x3f3f3f3f 1011 int supply 55 demand 55 某種商品的提供量和需求量 1...