BJOI2006 狼抓兔子

2022-05-13 09:56:14 字數 1062 閱讀 7575

求乙個網格圖的最小割。

這個題一看就知道是乙個最小割模型,於是就快樂的打了dinic,也就快樂的tle了。

查了查資料才知道,這個題要用到對偶圖的知識:平面圖最小割對應對偶圖最短路。所謂對偶圖,就是以原圖中的面作為點(將s,t連線以將無界區域分成兩部分),原圖中的邊在對偶圖中變為連線相鄰的面,於是,顯然對偶圖中s到t的一條路徑代表了原圖的乙個割,最短路徑即最小割。

#include #include 

#include

#include

const

int n = 2000000 + 10

;const

int m = 6000000 + 10;

inthd[n], nxt[m], to[m], w[m], cnt;

intn, m, s, t;

intdis[n], vis[n];

struct

node

bool

operator

< (const node &x) const};

inline

void adde(int x, int y, int

z)

inline

void adde(int x, int y, int

z)

void

dij()

}}}

intmain ()

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

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

}for (int i = 1; i < m; ++i)

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

scanf("%d

", &w);

adde(t,

2*(m-1)*i, w);

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

}dij();

printf(

"%d\n

", dis[t]);

return0;

}

BJOI2006 狼抓兔子

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

BJOI2006 狼抓兔子

題目 bzoj1001 洛谷p4001。題目大意 在一張n m的網格圖中,每個格仔都與其右 下 右下方各連有一條帶權無向邊。現在要你割去一些邊,使得左上角的點無法到達右下角的點。並且要割掉的邊的總權值最小。問最小是多少。解題思路 題意是求最小割,根據最小割等於最大流的定理,轉化為最大流即可。由於無向...

BJOI2006 狼抓兔子(網路流)

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