網路流24題 星際轉移問題 思維

2022-07-27 14:27:42 字數 1401 閱讀 9670

分析:這題最難的地方在於飛船的週期性,不同時間圖不一樣。。。考慮列舉天數,記xn,m為第n天的第m個點,從xn,m向xn+1,l連一條邊,m,l之間這一天有飛船,容量為飛船容量,然後從xn,m向xn+1,m連一條容量為無窮大,求從地球到月亮的最大流,當最大流》=k停止。

1 #include2 #include3 #include4 #include5 #include6

using

namespace

std;

7const

int maxn=1e3+5,inf=1e9;

8struct

edge

11};

12struct

isap

2526

void addedge(int

from,int to,int

cap)

3233

void

bfs()48}

49}50}

5152

intaugmemt()

59 x=t;

60while(x!=s)

65return

a;66}67

68int maxflow(int s,int

t)80

int ok=0;81

for(int i=cur[x];i)90}

91if(!ok)

97if(--num[d[x]]==0)break

;98 num[d[x]=m+1]++;

99 cur[x]=0

;100

if(x!=s)x=edges[p[x]].from

;101

}102

}103

return

flow;

104}

105}isap;

106int n,m,k,day=0,moon=1000

;107

int fa[1005

];108

int find(int x)

109struct

spaceshipss[25

];113 inline int

read()

119int

main()

134}

135}

136if(find(0)!=find(moon))cout<<0

<137else

147 isap.maxflow(0

,moon);

148 day++;

149}

150 cout151}

152return0;

153 }

網路流24題 星際轉移問題

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

網路流24題 星際轉移問題

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

網路流 24 題 星際轉移

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