流量最小HDU 3491 最小割

2021-09-06 09:31:23 字數 1928 閱讀 7296

在寫這篇文章之前,***已經寫過了幾篇關於改流量最小主題的文章,想要了解的朋友可以去翻一下之前的文章

題意:有n個都會,每乙個都會有定一數量的察警,有一群小偷,從都會s,到t,問起碼須要多少察警可以使小偷到不了t都會。

將每乙個都會的察警數量當作流量,那麼題問就轉化成求s - t的最小割。

將每乙個點拆成i , i + n ,流量是該點的值.然後跑一次最大流以可就了。

最大流最小割定理:恣意乙個流絡網的最大流量於等該絡網的最小的割的量容。

每日一道理

只有啟程,才會到達理想和目的地,只有拼搏,才會獲得輝煌的成功,只有播種,才會有收穫。只有追求,才會品味堂堂正正的人。

#include #include #include #include #include #include #include #include #include #include #include #include #define pi acos(-1.0)

#define max 2005

#define inf 1<<28

#define ll(x) (x<<1)

#define rr(x) (x<<1|1)

#define rep(i,s,t) for(int i=(s);i<=(t);++i)

#define ll long long

#define mem(a,b) memset(a,b,sizeof(a))

#define mp(a,b) make_pair(a,b)

using namespace std;

inline void readint(int &ret)

while(c < '0' || c > '9');

ret = c - '0';

while((c=getchar()) >= '0' && c <= '9')

ret = ret * 10 + ( c - '0' );

}int city[111] ;

struct kdq

ed[1111111] ;

int head[1111] ,num ;

void add(int s ,int e ,int l )

int deep[1111] ;

int qe[11111111] ;

void init()

int s , t ;

int dinic_bfs()}}

return deep[t] != -1 ;

}int dinic_dfs(int now, int f)

}if(!flow)deep[now] = -2 ;

return flow ;

}int dinic()

return flow ;

}int main()

add(s,s,inf) ;

add(h + n ,t,inf) ;

rep(i,1,m)

printf("%d\n",dinic()) ;

}return 0;

}

文章結束給大家分享下程式設計師的一些笑話語錄: 問路

有乙個駕駛熱氣球的人發現他迷路了。他降低了飛行的高度,並認出了地面 上的乙個人。他繼續下降高度並對著那個人大叫,「打擾一下,你能告訴我我 在哪嗎?」

下面那個人說:「是的。你在熱氣球裡啊,盤旋在 30 英呎的空中」。

熱氣球上的人說:「你一定是在 it 部門做技術工作」。

「沒錯」,地面上的人說到,「你是怎麼知道的?」

「呵呵」,熱氣球上的人說,「你告訴我的每件事在技術上都是對的,但對都沒 有用」。

地面上的人說,「你一定是管理層的人」。

「沒錯」,熱氣球上的人說,「可是你是怎麼知道的?」

「呵呵」,地面上的那人說到,「你不知道你在**,你也不知道你要去哪,你 總希望我能幫你。你現在和我們剛見面時還在原來那個地方,但現在卻是我 錯了」。

HDU3491最小割拆點

這道題就是乙個最小割,不過由於給出的是點的容量所以採用拆點連邊,這樣就把乙個點拆成連個點然後其邊容量為點容量。之後建圖的時候是雙向邊把拆出的點 i n 連到下個點就好,然後就是最大流。include include include include include using namespace st...

hdu3491最小割轉最大流 拆點

題意 求最小割,即求最大流即可。此題之關鍵為拆點 限制在點 每條邊都是雙向邊,注意一下。未1a原因 在拆點之後新增邊的過程中,要注意,出去的是i 進來的是i,所以,寫addegde函式時候 還是每次新增一單項邊就好,之後手動呼叫,可以注意出入之邊即可。簡單題。include 15ms include...

hdu 3491 Thieves 最小割拆點

題意 有n個城市和m條道路 雙向 一夥小偷準備從s城出發到h城盜竊,為了將這夥小偷抓住,需要在這n個城市中的每乙個城市安排一定數量的警察 每個城市警察的數量已經給出 但警察不希望在s城或h城遇到小偷.求解總共需要的最少警察數.由於每個城市頂點都具有權值,所以對於每個城市拆成兩個點u和所對應的u 之間...