輸入格式:
檔案的第一行包含兩個整數n和m。接下來n行每行m個整數,1表示該格仔屬於狼的領地,2表示屬於羊的領地,0表示該格仔不是任何乙隻動物的領地。
輸出格式:檔案中僅包含乙個整數ans,代表籬笆的最短長度。
解析:一看就是最小割.
源點->狼(inf)
狼->羊或空(1)
空->狼或羊(1)
羊->匯點(inf)
要注意的是為了控制流量方向,羊不能往狼上連。
**:#include#include#include#includeusing namespace std;
#define inf 1e9
struct point
e[1000001];
int n,m,num,s,t;
int h[21000],head[21000];
int x[6]=,y[6]=;
int g[2010][2010];
int get(int x,int y)
void add(int from,int to,int dis)
int dfs(int x,int dis)
} }if(!sum)
h[x]=-1;
return sum;
}bool bfs()
} }return h[t];
}int dinic()
int main()
if(g[i][j]==2)
}for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
}cout<
洛谷 P2598 狼和羊的故事 最大流
第一次寫這種修籬笆的題目,上次好像曉陽dalao寫了乙個堵人的。好像還有能改變土地屬性的。includeusing namespace std define ll long long dinic begin const int maxn 10100 const int maxm 100010 con...
P2598 ZJOI2009 狼和羊的故事
既可以是一眼題又可以是有些東西的題 一眼就可以看出來,要用最小割把狼和羊分開,那 s 向狼連 inf 羊向 t 連 inf 每個點向周圍連 1,考慮割掉的邊是柵欄 之所以說它有些東西,是應為它可以表示成數學形式,考慮將狼劃分成 0 集合,將羊劃分成 1 集合,沒有歸屬的點隨便 如果兩個點不在同乙個集...
最小割 狼和羊的故事
狼愛上羊啊愛的瘋狂,誰讓他們真愛了一場 狼愛上羊啊並不荒唐,他們說有愛就有方向 orez聽到這首歌,心想 狼和羊如此和諧,為什麼不嘗試羊狼合養呢?說幹就幹!orez的羊狼圈可以看作乙個n m個矩陣格仔,這個矩陣的邊緣已經裝上了籬笆。可是drake很快發現狼再怎麼也是狼,它們總是對羊垂涎三尺,那首歌只...