星際轉移問題

2021-08-14 07:05:06 字數 1318 閱讀 3499

s向地球連k的邊,每天每個地方由上一天連inf邊,每天月亮向t連邊

列舉天數獲取每天飛船的位置,由上一天的位置向這一天連滿載的邊

跑到人都送完位置,在合適的時候(玄學)break輸出無解

# include 

# include

# include

# include

# include

# define ll long long

# define rg register

# define il inline

# define mem(a, b) memset(a, b, sizeof(a))

# define max(a, b) (((a) > (b)) ? (a) : (b))

# define min(a, b) (((a) < (b)) ? (a) : (b))

using

namespace

std;

il int get()

const

int inf = 2147483647, maxn = 50001, maxm = 2000001;

int r[maxn], h[maxn], n, m, ft[maxn], cnt, ans, map[31][31], q[maxm], level[maxn], cur[maxn], k;

struct edge edge[maxm];

il void add(rg int u, rg int v, rg int f); ft[u] = cnt++;

edge[cnt] = (edge); ft[v] = cnt++;

}il int dfs(rg int u, rg int t, rg int maxf)

}return ret;

}il bool bfs(rg int s, rg int t)}}

return0;}

int main()

add(s, 2, k);

for(rg int i = 1; i <= (k + 2) * (n + 2); i++)

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

add(t1 + j, t2 + j, inf);

//昨天向今天

add(t2 + 1, t, inf);

//每天月亮

while(bfs(s, t))

if(ans >= k) return !printf("%d\n", i);

}printf("0\n");

return

0;}

星際轉移問題

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

網路流24題 星際轉移問題

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

網路流24題 星際轉移問題

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