洛谷4843 BZOJ2502 清理雪道

2022-05-25 11:00:18 字數 1212 閱讀 7364

有源匯有上下界的最小可行流。

yy一下建圖應該很好搞吧(?

就是對於每個雪道都是[1,inf]然後源點到所有點都是[0,inf]所有點到匯點都是[0,inf]

這樣的話跑乙個有源匯上下界最小可行流就可以了

有關於這個可以看liu_runda神犇的介紹 非常直觀易懂

最開始先建超級源匯 跑可行流得到乙個基礎流量 然後反向在殘餘網路上跑最大流減去即可

注意最後的時候是需要反向在殘餘網路上跑的 不要忘記交換源匯

**。

//

love and freedom.

#include#include

#include

#include

#include

#define inf 20021225

#define ll long long

#define n 200

#define m 40000

using

namespace

std;

struct edgee[m<<1

];int cnt=1,in

[n],dep[n],s,t,ss,tt;

queue

q;void add(int x,int y,int

f)bool

bfs()

}return0;

}int dfs(int x,int

f) }

dep[x] = -1; return f-flow;

}int

dinic()

intmost[m],f[n],n;

void del(int

x)int

main()

}for(int x=1;x<=n;x++)

for(int i=1;i<=n;i++)

add(t,s,inf);

int tmps = s,tmpt =t;

s = ss; t = tt; int flow =dinic();

flow = e[cnt].f; e[cnt].f = e[cnt-1].f = 0

; del(ss); del(tt); s = tmpt,t =tmps;

printf(

"%d\n

",flow-dinic());

return0;

}

view code

洛谷P4843 清理雪道

滑雪場坐落在fj省西北部的若干座山上。從空中鳥瞰,滑雪場可以看作乙個有向無環圖,每條弧代表乙個斜坡 即雪道 弧的方向代表斜坡下降的方向。你的團隊負責每週定時清理雪道。你們擁有一架直公升飛機,每次飛行可以從總部帶乙個人降落到滑雪場的某個地點,然後再飛回總部。從降落的地點出發,這個人可以順著斜坡向下滑行...

洛谷 P4843 清理雪道 有上下界最小流

題目描述 滑雪場坐落在fj省西北部的若干座山上。從空中鳥瞰,滑雪場可以看作乙個有向無環圖,每條弧代表乙個斜坡 即雪道 弧的方向代表斜坡下降的方向。你的團隊負責每週定時清理雪道。你們擁有一架直公升飛機,每次飛行可以從總部帶乙個人降落到滑雪場的某個地點,然後再飛回總部。從降落的地點出發,這個人可以順著斜...

洛谷P4843 清理雪道 有上下界最小流

時空限制 1000ms 128mb 題目描述 滑雪場坐落在fj省西北部的若干座山上。從空中鳥瞰,滑雪場可以看作乙個有向無環圖,每條弧代表乙個斜坡 即雪道 弧的方向代表斜坡下降的方向。你的團隊負責每週定時清理雪道。你們擁有一架直公升飛機,每次飛行可以從總部帶乙個人降落到滑雪場的某個地點,然後再飛回總部...