題目傳送門
分析:這個好像和那道清理滑雪跑道好像啊。。。
如果每個點都要訪問恰好fi次
然後邊不能超過w次
哦。。。
上下界網路流
每個點拆成兩個,原點向複製點連上(f,f)的邊,複製點向可到達的原點連(0,w)的邊
由於公交可以到達每個點,相當於發配流量,每個點都可以停下,相當於直接流向終點
所以s向每個原點連(0,inf)的邊,每個複製點向t連(0,inf)的邊
然後直接跑就好了。。。
#include#includeview code#include
#include
#include
#define maxn 20005
#define maxm 2000005
#define inf 0x3f3f3f3f
using
namespace
std;
inline
intgetint()
intn,m,s,t;
intfir[maxn],nxt[maxm],to[maxm],cap[maxm],cnt;
inth[maxn],tp[maxn];
intf[maxn];
long
long
ans;
inline
void newnode(int u,int v,int
w)inline
void insert(int u,int v,int
w)inline
bool
bfs()
return ~h[t];
}inline
int dfs(int u,int
flow)
}if(!used)h[u]=-1
;
return
used;
}inline
intdinic()
intmain()
for(int i=1;i<=m;i++)
int ss=t+1,tt=ss+1
;
for(int i=1;i<=t;i++)
if(f[i]>0
)insert(ss,i,f[i]);
else insert(i,tt,-f[i]);
insert(t,s,inf);
s=ss,t=tt;
dinic();
printf(
"%d\n
",cap[cnt]);
}
BZOJ2163 複雜的大門
bzoj2163 複雜的大門 你去找某bm玩,到了門口才發現要開啟他家的大門不是一件容易的事 他家的大門外有n個站台,用1到n的正整數編號。你需要對每個站台訪問一定次數以後大門才能開啟。站台之間有m個單向的傳送門,通過傳送門到達另乙個站台不需要花費任何代價。而如果不通過傳送門,你就需要乘坐公共汽車,...
BZOJ2163 複雜的大門
點這裡看題目。bzoj gg 了,所以鏈結在 dark 上面。題面 你去找某 bm 玩,到了門口才發現要開啟他家的大門不是一件容易的事 他家的大門外有 n 個站台,用 1 到 n 的正整數編號。你需要對每個站台訪問一定次數以後大門才能開啟。站台之間有 m 個單向的傳送門,通過傳送門到達另乙個站台不需...
BZOJ1171 大sz的遊戲
f i min f j 1,線段j與線段i有交,且l i l j l。線段j與線段i有交等價於y j x i x j y i 因為l i 遞增,所以可以維護乙個單調遞增的j,表示 j,i 1 範圍內都可以更新f i 用k d樹動態維護即可,時間複雜度 o n sqrt include include...