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...