直接暴力建邊,在lougu上跑的飛快。(except the last test)
總結一下也就是三句話:
insert(id(i, j), id(i, j + 1沒了就,。。dinic什麼的就看看本部落格分享的總結爸。。。), x)
insert(id(i, j), id(i + 1
, j), x)
insert(id(i, j), id(i + 1, j + 1), x)
**當然還是要發的,即使只是乙個暴力。。
1 #include 2 #include[bjoi2006]狼抓兔子 ac code3 #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 狼抓兔子
現在小朋友們最喜歡的 喜羊羊與灰太狼 話說灰太狼抓羊不到,但抓兔子還是比較在行的,而且現在的兔子還比較笨,它們只有兩個窩,現在你做為狼王,面對下面這樣乙個網格的地形 左上角點為 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的網格圖中,每個格仔都與其右 下 右下方各連有一條帶權無向邊。現在要你割去一些邊,使得左上角的點無法到達右下角的點。並且要割掉的邊的總權值最小。問最小是多少。解題思路 題意是求最小割,根據最小割等於最大流的定理,轉化為最大流即可。由於無向...