最小費用最大流 網路流24題 餐巾

2022-03-27 07:51:57 字數 898 閱讀 1731

傳送門

需要拆點,即把每一天拆成沒用過餐巾和和用完的餐巾(不要在意語法錯誤)

把s向每天的廢餐巾連一條費用為零,流量為r[i]的邊,表示當天產生r[i]個髒餐巾。

dayi 的髒餐巾向dayi+1的髒餐巾連一條費用為0,流量為inf的邊,表示把這一天的髒餐巾留到下一天處理

把每天的好餐巾向t連一條費用為0,流量為r[i]的邊,表示這一天用廢了r[i]條餐巾

因為快洗,慢洗總量要求相同,所以不用分開考慮。

我就和著寫了,把每天髒餐巾向洗完的天連一條費用為洗的花費,流量為inf的邊,

從s向每天新餐巾連一條流量inf,費用p的邊,表示每天都可以買新餐巾。

反遍怎麼建略。

#include#include#include#include#include#define inf 100000000

using namespace std;

int day,kuai[205],p,m,f,n,s;

int s,t;

int adj[1000],from[1000],dis[1000],flag[1000],e=2;

struct node

a[10000];

void add(int u,int v,int l,int f)

int bfs()

from[to]=i;

}} }

if(dis[t]==inf)return 0;

return dis[t];

}int dfs()

aa=t;

while(aa!=s)

return bb;

}int yjn()

int ans=0,l;

while(l=bfs())

ans+=l*dfs();

cout<

最小費用最大流 網路流24題 餐巾

傳送門 需要拆點,即把每一天拆成沒用過餐巾和和用完的餐巾 不要在意語法錯誤 把s向每天的廢餐巾連一條費用為零,流量為r i 的邊,表示當天產生r i 個髒餐巾。dayi 的髒餐巾向dayi 1的髒餐巾連一條費用為0,流量為inf的邊,表示把這一天的髒餐巾留到下一天處理 把每天的好餐巾向t連一條費用為...

餐巾計畫問題 網路流24題 最大流最小費用

一道普通的最大流最小費用的題,我們需要考慮的是這樣的情況 第i天的舊餐巾我們該怎麼處理?我們知道可以退後m天去快洗,然後在第i m天再次使用它花費f元,另外的方法就是在推後n天去慢洗,花費的s元,但是我們要是遇到剛好那天在這段區間內的怎麼辦,我們不如就加上一組無條件推後一天的情況。那麼,我們可以這麼...

網路流 最小費用最大流

q 為什麼突然想搞網路流?a 迫於tham 蛤mu的淫威 用最短路演算法求出s t的路徑 把路徑要摳出來,而且每條邊要有容量 算一下路徑裡面的可以流過的最大的流量 發現此時的花費就是 dis t flow 累加即可.重複1 3直到不能夠到達t.include include include incl...