bzoj1412 ZJOI2009 狼和羊的故事

2022-05-02 03:24:09 字數 1508 閱讀 8282

「狼愛上羊啊愛的瘋狂,誰讓他們真愛了一場;狼愛上羊啊並不荒唐,他們說有愛就有方向......」 orez聽到這首歌,心想:狼和羊如此和諧,為什麼不嘗試羊狼合養呢?說幹就幹! orez的羊狼圈可以看作乙個n*m個矩陣格仔,這個矩陣的邊緣已經裝上了籬笆。可是drake很快發現狼再怎麼也是狼,它們總是對羊垂涎三尺,那首歌只不過是乙個動人的傳說而已。所以orez決定在羊狼圈中再加入一些籬笆,還是要將羊狼分開來養。 通過仔細觀察,orez發現狼和羊都有屬於自己領地,若狼和羊們不能呆在自己的領地,那它們就會變得非常暴躁,不利於他們的成長。 orez想要新增籬笆的盡可能的短。當然這個籬笆首先得保證不能改變狼羊的所屬領地,再就是籬笆必須修築完整,也就是說必須修建在單位格仔的邊界上並且不能只修建一部分。

檔案的第一行包含兩個整數n和m。接下來n行每行m個整數,1表示該格仔屬於狼的領地,2表示屬於羊的領地,0表示該格仔不是任何乙隻動物的領地。

檔案中僅包含乙個整數ans,代表籬笆的最短長度。

2 22 2

1 1

2資料範圍

10%的資料 n,m≤3

30%的資料 n,m≤20

100%的資料 n,m≤100

正解:最小割。

最小割模板題,我也不知道為什麼要寫這題。。

1 #include 2

#define il inline

3#define rg register

4#define ll long long

5#define inf (1<<30)

6#define n (10005)78

using

namespace

std;910

struct edgeg[200005

];11

12int head[n],d[n],q[n],a[105][105],id[105][105

],s,t,n,m,num,cnt;

1314 il int

gi()

2122 il void insert(rg int

from,rg int to,rg int

cap),head[from]=num;

24 g[++num]=(edge),head[to]=num; return;25

}2627 il int bfs(rg int s,rg int

t)38}39

}40return

d[t];41}

4243 il int dfs(rg int x,rg int t,rg int

a)50 g[i].flow+=f,g[i^1].flow-=f;

51 flow+=f,a-=f; if (!a) return

flow;52}

53}54return

flow;55}

5657 il int maxflow(rg int s,rg int

t)61

62int

main()79}

80 cout81 }

bzoj1412 ZJOI2009 狼和羊的故事

description 狼愛上羊啊愛的瘋狂,誰讓他們真愛了一場 狼愛上羊啊並不荒唐,他們說有愛就有方向 orez聽到這首歌,心想 狼和羊如此和諧,為什麼不嘗試羊狼合養呢?說幹就幹!orez的羊狼圈可以看作乙個n m個矩陣格仔,這個矩陣的邊緣已經裝上了籬笆。可是drake很快發現狼再怎麼也是狼,它們總...

bzoj1412 網路流最小割

狼愛上羊啊愛的瘋狂,誰讓他們真愛了一場 狼愛上羊啊並不荒唐,他們說有愛就有方向 orez聽到這首歌,心想 狼和羊如此和諧,為什麼不嘗試羊狼合養呢?說幹就幹!orez的羊狼圈可以看作乙個n m個矩陣格仔,這個矩陣的邊緣已經裝上了籬笆。可是drake很快發現狼再怎麼也是狼,它們總是對羊垂涎三尺,那首歌只...

BZOJ1003 ZJOI 物流運輸

物流公司要把一批貨物從碼頭a運到碼頭b。由於貨物量比較大,需要n天才能運完。貨物運輸過程中一般要轉停好幾個碼頭。物流公司通常會設計一條固定的運輸路線,以便對整個運輸過程實施嚴格的管理和跟蹤。由於各種因素的存在,有的時候某個碼頭會無法裝卸貨物。這時候就必須修改運輸路線,讓貨物能夠按時到達目的地。但是修...