網路流 24 題 餐巾計畫

2021-08-07 14:01:41 字數 1102 閱讀 5570

這道題目很關鍵的一點就是,要明白用的餐巾和洗的餐巾是兩個系統。

所以我們把每一天所用餐巾直接用乙個源點和匯點連線。解決第乙個系統。

此時可能會洗餐巾,所以我們另起乙個點,從源點每一天引出髒的餐巾,數目依然是當天所用的餐巾數量,然後從這個點連線到m天後的第一系統的點和n天後第一系統的點,費用分別為f和s,流量為無窮大。當天的餐巾就算不洗也可以留下來,所以我們還需要把這些餐巾連線起來,當天不洗的餐巾連一條線到下一天不洗的餐巾處,流量為無窮大,費用為0.第二個系統就是輔助第乙個系統的。

**如下:

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

const int inf = 0x3f3f3f3f;

const int maxn = 2500 + 5;

const int maxm = 10000 + 5;

int n;

int head[maxn], to[maxm], front[maxm], flow[maxm], cost[maxm], ppp;

int dis[maxn], minflow[maxn];

bool flag[maxn];

pairpar[maxn];

struct min_cost_max_flow

bool spfa(int s, int t) }}

} if(dis[t] == inf)

return 0;

return 1; }

int slove(int s, int t)

ans += dis[t] * minflow[t];

} return ans; }

void add_edge(int u, int v, int f, int c)

}mcmf;

int main()

int ans = mcmf.slove(start, tank);

printf("%d\n", ans);

return 0;

}

網路流24題 餐巾計畫

乙個餐廳在相繼的n天裡,第i天需要ri塊餐巾 i l,2,n 餐廳可以從三種途徑獲得餐巾。1 購買新的餐巾,每塊需p分 2 把用過的餐巾送到快洗部,洗一塊需m天,費用需f分 f p 如m l時,第一天送到快洗部的餐巾第二天就可以使用了,送慢洗的情況也如此。3 把餐巾送到慢洗部,洗一塊需n天 n m ...

網路流24題 餐巾計畫(費用流)

乙個餐廳在相繼的 n 天裡,每天需用的餐巾數不盡相同。假設第 i天需要 ri 塊餐巾。餐廳可以購買新的餐巾,每塊餐巾的費用為 p 分 或者把舊餐巾送到快洗部,洗一塊需 m 天,其費用為 f 分 或者送到慢洗部,洗一塊需 n 天,其費用為 s 分 s f 每天結束時,餐廳必須決定將多少塊髒的餐巾送到快...

網路流24題 餐巾計畫問題

傳送門 這個題我一開始沒把tot賦值成 1,然後調了1h。然後只拿了20,看了題解才知道漏了一種情況,那就是其實餐巾是可以留到第二天的。然後就沒了。對了,忘說做法了 尷尬 其實就是拆點,分別連邊,實現題目中的三種操作,具體可以看我的 include include include include i...