網路流24題 星際轉移問題(最大流)

2022-03-20 08:16:37 字數 1121 閱讀 5961

cogs

因為天數是未知的,所以我們要想辦法處理天數

可以選擇二分或者依次累加天數

因為資料範圍較小,使用二分可能反而複雜度會增高

所以使用不斷累加天數

那麼,把所有的點拆成天數個

因為每天都可以當做有無數人要做飛船

因此從源點向每天的地球連邊,容量為inf

因為空間站可以留人

所以從前一天的空間站向後一天的空間站連一條容量為inf的邊

因為迴圈移動的飛船

因此,從飛船上一天的所在的星球向當前這一天所在的星球連邊

容量為飛船的容量

因為到達月球就是終點了

所以每天的月球向匯點連邊

這時候,最大流就是可以運輸的最大人數

因為是依次加邊,所以不需要推倒重建

當最大流大於所要求的人數時即可退出輸出答案

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

#define max 12000

#define maxl 5000000

#define inf 1000000000

inline int read()

struct line

e[maxl];

int h[max],cnt=2,level[max];

int n,m,k,s,t,hp[max],tt,r[max];

int p[max][50],pos[max],flow;

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

;h[u]=cnt++;

e[cnt]=(line);h[v]=cnt++;

}bool bfs()

} }return level[t];

}int dfs(int u,int flow)

} if(!ret)level[u]=0;

return ret;

}void dinic()

int main()

} puts("0");

return 0;

}

網路流24題 星際轉移問題

這個問題的難點在於如何表示時間的流逝很容易 想到源點 是地球,然後中間 一串的空 間站,最 後連向匯 點月 球很容易想到源點是地球,然後中間一串的空間站,最後連向匯點月球 很容易想到源 點是地球 然後中 間一串的 空間站,最後連向 匯點月球空間 站間各自 連邊,流 量是飛船 的容 量空間站間各自連邊...

網路流24題 星際轉移問題

description 由於人類對自然資源的消耗,人們意識到大約在 2300 年之後,地球就不能再居住了。於是在月球上建立了新的綠地,以便在需要時移民。令人意想不到的是,2177 年冬由於未知的原因,地球環境發生了連鎖崩潰,人類必須在最短的時間內遷往月球。現有 n 個太空站位於地球與月球之間,且有 ...

網路流 24 題 星際轉移

題目描述 由於人類對自然資源的消耗,人們意識到大約在 2300 年之後,地球就不能再居住了。於是在月球上建立了新的綠地,以便在需要時移民。令人意想不到的是,2177 年冬由於未知的原因,地球環境發生了連鎖崩潰,人類必須在最短的時間內遷往月球。現有 n n n 個太空站位於地球與月球之間,且有 m m...