BJOI2006 狼抓兔子

2022-05-19 10:00:27 字數 881 閱讀 4911

題目:bzoj1001、洛谷p4001。

題目大意:在一張n×m的網格圖中,每個格仔都與其右、下、右下方各連有一條帶權無向邊。現在要你割去一些邊,使得左上角的點無法到達右下角的點。並且要割掉的邊的總權值最小。問最小是多少。

解題思路:題意是求最小割,根據最小割等於最大流的定理,轉化為最大流即可。

由於無向圖,建反向邊時容量和正向邊一樣。

但本題裸的dinic是過不了的,需要加乙個優化:如果沿一條邊走,發現返回值為0,則說明這條邊已經無任何貢獻了,在本次增廣中不需要再考慮這條邊(**第54行)。

然後優化一下常數就可以卡過去了。

c++ code:

#include#include#include#define n 1000002

#define inf 0x3f3f3f3f

int n,m,level[n],iter[n],head[n],cnt=0;

struct edgee[n*7];

int q[5000005];

inline int min(int a,int b)}}

}int dfs(int u,int t,int f)else level[v]=-1;}}

return 0;

}int max_flow(int s,int t)

}int main()

for(int i=1;ifor(int j=1;j<=m;++j)

for(int i=1;ifor(int j=1;jprintf("%d\n",max_flow(1,n*m));

return 0;

}

BJOI2006 狼抓兔子

現在小朋友們最喜歡的 喜羊羊與灰太狼 話說灰太狼抓羊不到,但抓兔子還是比較在行的,而且現在的兔子還比較笨,它們只有兩個窩,現在你做為狼王,面對下面這樣乙個網格的地形 左上角點為 1,1 右下角點為 n,m 上圖中n 3,m 4 有以下三種型別的道路 1 x,y x 1,y 2 x,y x,y 1 3...

BJOI2006 狼抓兔子

求乙個網格圖的最小割。這個題一看就知道是乙個最小割模型,於是就快樂的打了dinic,也就快樂的tle了。查了查資料才知道,這個題要用到對偶圖的知識 平面圖最小割對應對偶圖最短路。所謂對偶圖,就是以原圖中的面作為點 將s,t連線以將無界區域分成兩部分 原圖中的邊在對偶圖中變為連線相鄰的面,於是,顯然對...

BJOI2006 狼抓兔子(網路流)

現在小朋友們最喜歡的 喜羊羊與灰太狼 話說灰太狼抓羊不到,但抓兔子還是比較在行的,而且現在的兔子還比較笨,它們只有兩個窩,現在你做為狼王,面對下面這樣乙個網格的地形 左上角點為 1,1 右下角點為 n,m 上圖中n 3,m 4 有以下三種型別的道路 1 x,y x 1,y 2 x,y x,y 1 3...