BJOI2006 狼抓兔子 暴力AC啦!

2022-05-01 03:39:10 字數 3391 閱讀 5300

直接暴力建邊,在lougu上跑的飛快。(except the last test)

總結一下也就是三句話:

insert(id(i, j), id(i, j + 1

), x)

insert(id(i, j), id(i + 1

, j), x)

insert(id(i, j), id(i + 1, j + 1), x)

沒了就,。。dinic什麼的就看看本部落格分享的總結爸。。。

**當然還是要發的,即使只是乙個暴力。。

1 #include 2 #include 

3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include

12 #include 13 #include 14 #include 15 #include 16 #include 17 #include 18 #include 19

using

namespace

std ;

2021

#define rep(i, a, b) for (int (i) = (a); (i) <= (b); (i)++)

22#define rep(i, a, b) for (int (i) = (a) - 1; (i) < (b); (i)++)

23#define rep(i, a, b) for (int (i) = (a); (i) >= (b); (i)--)

24#define clr(a) memset(a, 0, sizeof(a))

25#define sort(a, len, cmp) sort(a + 1, a + len + 1, cmp)

26#define ass(a, sum) memset(a, sum, sizeof(a))

2728

#define ls ((rt) << 1)

29#define rs ((rt) << 1 | 1)

30#define lowbit(x) (x & -x)

31#define mp make_pair

32#define pb push_back

33#define fi first

34#define se second

35#define endl '\n'

36#define endl cout << endl

37#define sz(x) ((int)x.size())

3839 typedef long

long

ll ;

40 typedef unsigned long

long

ull ;

41 typedef vector vi ;

42 typedef pair pii ;

43 typedef pair pll ;

44 typedef map mii ;

45 typedef map msi ;

46 typedef map mll ;

4748

const

int n = 1010;49

const

double eps = 1e-8;50

const

int iinf =int_max ;

51const ll linf =2e18 ;

52const

double dinf =1e30 ;

53const

int mod = 1000000007;54

55 inline int

read()

59while (isdigit(ch)) x = (x << 3) + (x << 1) + (ch ^ 48), ch =getchar() ;

60return w ? -x : x ;61}

6263

void write(int

x)68

69void print(int

x) 73

74void print(string

x) 78

79void douout(double

x)82

83int n, m, x, top = 1

, s, t ;

84int head[n * n], dep[n *n] ;

8586

struct

edge e[n * n * 6

] ;89

90void add(int a, int b, int

w) ;

92 head[a] =top ;93}

9495

void insert(int a, int b, int

w) 99

100bool bfs()

114}

115}

116if (!dep[t]) return0;

117else

return1;

118}

119120

int dfs(int rt, int

dis)

130 e[i].w -=p ;

131 e[i ^ 1].w +=p ;

132return

p ;133

}134

}135

return0;

136}

137138

intdinic()

143return

res ;

144}

145146

int id(int x, int

y) 149

150signed main()

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

159for (int j = 1; j <= m; j++)

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

164for (int j = 1; j < m; j++)

168 printf("

%d\n

", dinic()) ;

169}

170171

/*172

寫**時請注意:

1731.是否要開long long?陣列邊界處理好了麼?

1742.實數精度有沒有處理?

1753.特殊情況處理好了麼?

1764.做一些總比不做好。

177178

1.最大值和最小值問題可不可以用二分答案?

1792.有沒有貪心策略?否則能不能dp?

180*/

[bjoi2006]狼抓兔子 ac code

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 狼抓兔子

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