codevs1993 草地排水(最大流)

2022-04-06 04:14:27 字數 2154 閱讀 2772

usaco

時間限制: 2 s

空間限制: 256000 kb

題目等級 : 鑽石 diamond

農夫約翰知道每一條排水溝每分鐘可以流過的水量,和排水系統的準確布局(起點為水潭而終點為小溪的一張網)。需要注意的是,有些時候從一處到另一處不只有一條排水溝。

根據這些資訊,計算從水潭排水到小溪的最大流量。對於給出的每條排水溝,雨水只能沿著乙個方向流動,注意可能會出現雨水環形流動的情形。

輸入描述 input description

第1行: 兩個用空格分開的整數n (0 <= n <= 200) 和 m (2 <= m <= 200)。n是農夫john已經挖好的排水溝的數量,m是排水溝交叉點的數量。交點1是水潭,交點m是小溪。

第二行到第n+1行: 每行有三個整數,si, ei, 和 ci。si 和 ei (1 <= si, ei <= m) 指明排水溝兩端的交點,雨水從si 流向ei。ci (0 <= ci <= 10,000,000)是這條排水溝的最大容量。

輸出描述 output description

輸出乙個整數,即排水的最大流量。

樣例輸入 sample input

5 4

1 2 40

1 4 20

2 4 20

2 3 30

3 4 10

樣例輸出 sample output

/*

dinic演算法的基本思路:

1.根據殘量網路計算層次圖。

2.在層次圖中使用dfs進行增廣直到不存在增廣路。

3.重複以上步驟直到無法增廣。

殘量網路:包含反向弧的有向圖,dinic要迴圈的,每次修改過的圖都是殘量網路,

層次圖:分層圖,以[從原點到某點的最短距離]分層的圖,距離相等的為一層

dfs:這個就不用說了吧…

增廣 :在現有流量基礎上發現新的路徑,擴大發現的最大流量(注意:增加量不一定是這條路徑的流量,而是新的流量與上次流量之差)

增廣路:在現有流量基礎上發現的新路徑.(快來找茬,和上一條有何不同?)

剩餘流量:當一條邊被增廣之後(即它是增廣路的一部分,或者說增廣路通過這條邊),這條邊還能通過的流量.

反向弧:我們在dinic演算法中,對於一條有向邊,我們需要建立另一條反向邊(弧),當正向(輸入資料)邊剩餘流量減少i時,反向弧剩餘流量增加i

*/#include

#include

#include

#define maxn 2010

#define inf 9999185

using

namespace

std;

inthead[maxn],deep[maxn],q[maxn],vis[maxn];

int n,m,x,y,z,s=1

,cnt,num,ans;

struct

node

e[maxn

<<5

];inline

intinit()

while(c>='

0'&&c<='9')

return x*f;

}inline

void add(int

from,int to,int

dis)

int bfs()//

統計各點的層數 }}

return

false;}

int dfs(int now,int came_flow)//

now 是當前節點,came_flow是能流過來的流量,即當前點準備向外流的流量。

}if(!use_flow)//

優化 如果找到到不了匯點的點,就不管它。

deep[now]=-1

;

return

use_flow;

}int dicnic(int s,int

t)//

就一直流啊流啊流

}

return

tot;

}int

main()

ans=0

; ans=max(ans,dicnic(1

,m));

printf(

"%d\n

",ans);

return0;

}

codevs 1993草地排水

農夫約翰知道每一條排水溝每分鐘可以流過的水量,和排水系統的準確布局 起點為水潭而終點為小溪的一張網 需要注意的是,有些時候從一處到另一處不只有一條排水溝。根據這些資訊,計算從水潭排水到小溪的最大流量。對於給出的每條排水溝,雨水只能沿著乙個方向流動,注意可能會出現雨水環形流動的情形。輸入描述 inpu...

CODEVS 1993 草地排水

題目描述 description 農夫約翰知道每一條排水溝每分鐘可以流過的水量,和排水系統的準確布局 起點為水潭而終點為小溪的一張網 需要注意的是,有些時候從一處到另一處不只有一條排水溝。根據這些資訊,計算從水潭排水到小溪的最大流量。對於給出的每條排水溝,雨水只能沿著乙個方向流動,注意可能會出現雨水...

codevs1993 草地排水(最大流)

最近學了最大流,於是去codevs找了幾道最大流裸題 這是我第一次寫網路流 題目大意 求乙個圖的最大流 就是這樣的裸題 第一次a網路流的題,發個部落格紀念一下。var n,m,i,j,k,h,t,x,y,z,ans longint a array 0.410,0.410 of longint q,l...