亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? maxflow_dinic.dpr

?? CQF大牛關于網絡流方面的程序代碼
?? DPR
字號:
Program MaxFlow_Dinic;
Const
	MaxNodeNum = 5000 ;
	MaxEdgeNum = 50000 ;
	Infinity = MaxLongint Div 2;
Type
	TIndex = Longint;
	TCapacity = Longint;
	TEdge = Record
		Start,Target:TIndex;
		Flow,Capa:TCapacity;
		PrevEdge:TIndex;
	End;
	TLast = Array [1..MaxNodeNum] Of TIndex;
	TNetwork = Object
		NodeNum,EdgeNum:TIndex;
		Source,Sink:TIndex;
		Edge:Array [1..MaxEdgeNum] Of TEdge;
		Last,LastBackup:TLast;
		TotalFlow:TCapacity;
		Visit:Array [1..MaxNodeNum] Of Boolean;
		PrevE:Array [1..MaxNodeNum] Of TIndex;
		Dist:Array [1..MaxNodeNum] Of TIndex;
		Team:Array [1..MaxNodeNum] Of TIndex;
			Head,Tail:TIndex;
		Procedure ClearFlow;
		Procedure Initialize(FNodeNum,FSource,FSink:TIndex);
		Procedure InsertEdge(FStart,FTarget:TIndex;FCapa:TCapacity);
		Function Opposite(Num:TIndex):TIndex;
		Function SetDistLabel:Boolean;
		Function FindPath(Cur:TIndex;Var Delta:TCapacity):Boolean;
		Procedure Augment(Delta:TCapacity);
		Procedure Dinic;
		Procedure DFS(Cur:TIndex);
		Procedure FindCut;
		Function GetFlowValue:TCapacity;
	End;
	Procedure TNetwork.ClearFlow;
	Var
		I:TIndex;
	Begin
		For I := 1 To EdgeNum Do
			Edge[I].Flow := 0 ;
	End;
	Procedure TNetwork.Initialize(FNodeNum,FSource,FSink:TIndex);
	Begin
		NodeNum := FNodeNum ;
		EdgeNum := 0 ;
		Source := FSource ;
		Sink := FSink ;
		FillChar(Last,SizeOf(Last),0);
	End;
	Procedure TNetwork.InsertEdge(FStart,FTarget:TIndex;FCapa:TCapacity);
	Begin
		Inc(EdgeNum);
		Edge[EdgeNum].Start := FStart ;
		Edge[EdgeNum].Target := FTarget ;
		Edge[EdgeNum].Capa := FCapa ;
		Edge[EdgeNum].Flow := 0 ;
		Edge[EdgeNum].PrevEdge := Last[FStart] ;
		Last[FStart] := EdgeNum ;
		Inc(EdgeNum);
		Edge[EdgeNum].Start := FTarget ;
		Edge[EdgeNum].Target := FStart ;
		Edge[EdgeNum].Capa := 0 ;
		Edge[EdgeNum].Flow := 0 ;
		Edge[EdgeNum].PrevEdge := Last[FTarget] ;
		Last[FTarget] := EdgeNum ;
	End;
	Function TNetwork.Opposite(Num:TIndex):TIndex;
	Begin
		If Odd(Num) Then
			Result := Num + 1
		Else
			Result := Num - 1 ;
	End;
	Function TNetwork.SetDistLabel:Boolean;
	Var
		Cur:TIndex;
		CurEdge:TIndex;
	Begin
		FillChar(Visit,SizeOf(Visit),False);
		Visit[Source] := True ;
		Dist[Source] := 0 ;
		Head := 0 ;
		Tail := 1 ;
		Team[Tail] := Source ;
		Repeat
			Inc(Head);
			Cur := Team[Head] ;
			CurEdge := Last[Cur] ;
			While CurEdge > 0 Do
			Begin
				If Not Visit[Edge[CurEdge].Target] And (Edge[CurEdge].Flow < Edge[CurEdge].Capa) Then
				Begin
					Inc(Tail);
					Team[Tail] := Edge[CurEdge].Target ;
					Visit[Team[Tail]] := True ;
					Dist[Team[Tail]] := Dist[Cur] + 1 ;
				End;
				CurEdge := Edge[CurEdge].PrevEdge ;
			End;
		Until Head = Tail ;
		Result := Visit[Sink] ;
	End;
	Function TNetwork.FindPath(Cur:TIndex;Var Delta:TCapacity):Boolean;
	Begin
		Visit[Cur] := True ;
		Result := True ;
		If Cur = Sink Then
			Exit;
		While Last[Cur] > 0 Do
			With Edge[Last[Cur]] Do
			Begin
				If (Dist[Target] = Dist[Start] + 1) And Not Visit[Target] And (Flow < Capa) Then
					If FindPath(Target,Delta) Then
					Begin
						PrevE[Target] := Last[Cur] ;
						If Delta > Capa - Flow Then
							Delta := Capa - Flow ;
						Exit;
					End;
				Last[Cur] := Edge[Last[Cur]].PrevEdge ;
			End;
		Result := False ;
	End;
	Procedure TNetwork.Augment(Delta:TCapacity);
	Var
		Cur:TIndex;
		CurEdge:TIndex;
	Begin
		Cur := Sink ;
		TotalFlow := TotalFlow + Delta ;
		Repeat
			CurEdge := PrevE[Cur] ;
			Edge[CurEdge].Flow := Edge[CurEdge].Flow + Delta ;
			Edge[Opposite(CurEdge)].Flow := Edge[Opposite(CurEdge)].Flow - Delta ;
			Cur := Edge[CurEdge].Start ;
		Until Cur = Source ;
	End;
	Procedure TNetwork.Dinic;
	Var
		Delta:TCapacity;
	Begin
		TotalFlow := 0 ;
		LastBackup := Last ;
		While SetDistLabel Do
		Begin
			Repeat
				FillChar(Visit,SizeOf(Visit),False);
				Delta := Infinity ;
				If Not FindPath(Source,Delta) Then
					Break;
				Augment(Delta);
			Until False ;
			Last := LastBackup ;
		End;
	End;
	Procedure TNetwork.DFS(Cur:TIndex);
	Var
		CurEdge:TIndex;
	Begin
		Visit[Cur] := True ;
		CurEdge := Last[Cur] ;
		While CurEdge > 0 Do
		Begin
			If Not Visit[Edge[CurEdge].Target] And (Edge[CurEdge].Flow < Edge[CurEdge].Capa) Then
				DFS(Edge[CurEdge].Target);
			CurEdge := Edge[CurEdge].PrevEdge ;
		End;
	End;
	Procedure TNetwork.FindCut;
	Begin
		FillChar(Visit,SizeOf(Visit),False);
		Last := LastBackup ;
		DFS(Source);
	End;
	Function TNetwork.GetFlowValue:TCapacity;
	Begin
		Result := TotalFlow ;
	End;
Var
	Network:TNetwork;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
激情六月婷婷综合| 一区二区三区免费| 91免费精品国自产拍在线不卡| 亚洲小说春色综合另类电影| 久久久久高清精品| 欧美日韩成人在线一区| 成人短视频下载| 久久精品国产免费| 一区二区成人在线| 久久精品一区蜜桃臀影院| 欧美三电影在线| 成人永久aaa| 韩国女主播一区| 天天爽夜夜爽夜夜爽精品视频| 综合久久久久综合| 国产三级欧美三级日产三级99| 7777精品伊人久久久大香线蕉| 久热成人在线视频| 成人美女视频在线观看| 午夜成人免费电影| 亚洲区小说区图片区qvod| 亚洲高清免费视频| 国产精品久久久久影院| 亚洲精品在线免费播放| 欧美猛男超大videosgay| 色综合久久综合网欧美综合网| 国产一区二区美女| 久久国产精品色| 日韩电影一二三区| 手机精品视频在线观看| 亚洲与欧洲av电影| 夜夜操天天操亚洲| 亚洲精品久久久蜜桃| 日韩一区在线看| 亚洲视频电影在线| 日韩一区在线播放| 亚洲欧美影音先锋| 亚洲欧美日韩精品久久久久| 中文字幕av资源一区| 国产欧美一区二区三区网站| 国产午夜精品一区二区三区四区| 亚洲乱码国产乱码精品精的特点| 国产日韩影视精品| 国产欧美精品在线观看| 久久久久久久久久久久久久久99 | 精品理论电影在线观看| 日韩一区国产二区欧美三区| 欧美精品tushy高清| 777午夜精品免费视频| 91麻豆精品91久久久久久清纯| 欧美高清hd18日本| 欧美一区二区成人6969| 日韩精品一区二区在线| 欧美mv日韩mv亚洲| 久久久久久综合| 国产精品久久久久久久久搜平片| 国产精品免费视频一区| 亚洲欧美日韩综合aⅴ视频| 亚洲综合另类小说| 日韩av中文字幕一区二区| 美女在线观看视频一区二区| 欧美亚洲丝袜传媒另类| 亚洲激情网站免费观看| 亚洲女性喷水在线观看一区| 一区二区三区日本| 欧日韩精品视频| 欧美最猛性xxxxx直播| 一本大道久久a久久综合婷婷| 日韩精品中文字幕在线不卡尤物 | 亚洲永久精品大片| 亚洲美女免费在线| 麻豆专区一区二区三区四区五区| 亚洲高清免费一级二级三级| 亚洲情趣在线观看| 亚洲一本大道在线| 久久99深爱久久99精品| 狠狠色丁香久久婷婷综合_中 | 国产精一区二区三区| 精品在线一区二区三区| 国产不卡在线播放| 91片黄在线观看| 日韩三级伦理片妻子的秘密按摩| 日韩一区二区三区在线观看| 久久亚洲综合色一区二区三区 | 九九久久精品视频| 国产成人亚洲综合a∨婷婷 | 国产日产欧产精品推荐色| 中文字幕制服丝袜成人av| 亚洲午夜在线电影| 欧洲一区在线电影| 欧美大片一区二区| 欧美日韩成人在线| 色国产综合视频| 亚洲综合999| 国产欧美日韩在线观看| 一区二区三区在线观看欧美| 亚洲欧美成人一区二区三区| 欧美a级理论片| 国产免费久久精品| 一区二区三区中文字幕电影| 久久99精品国产| 91国偷自产一区二区开放时间 | 久久久蜜桃精品| 国产在线一区二区| 欧美三级一区二区| 国产精品女同一区二区三区| 男女男精品视频| 欧美色图12p| 综合久久综合久久| 粉嫩aⅴ一区二区三区四区| 日韩女优视频免费观看| 亚洲精品免费在线观看| 成人一区二区三区| 欧美成人bangbros| 丝袜诱惑亚洲看片| 91久久精品一区二区| 日本一区二区三区久久久久久久久不 | 日本一区二区成人| 久久99精品网久久| 3atv一区二区三区| 亚洲高清在线精品| 91极品美女在线| 亚洲日本va午夜在线电影| 国产精品1区2区3区| 精品美女一区二区| 美美哒免费高清在线观看视频一区二区 | 久久综合av免费| 日韩精品亚洲专区| 欧美色手机在线观看| 亚洲影院理伦片| 99精品欧美一区二区三区综合在线| 久久婷婷国产综合精品青草| 青青草一区二区三区| 欧美另类变人与禽xxxxx| 一二三区精品视频| 欧美综合视频在线观看| 一区二区三区在线观看动漫| 色综合久久中文字幕综合网| 亚洲色图色小说| 91女神在线视频| 亚洲午夜一区二区三区| 欧美三级在线视频| 91精品福利视频| 国产精品美女久久久久久久久 | 国产又黄又大久久| 91网上在线视频| 亚洲图片另类小说| 色综合视频一区二区三区高清| 亚洲同性gay激情无套| 91麻豆福利精品推荐| 一区二区三区资源| 欧美狂野另类xxxxoooo| 日本网站在线观看一区二区三区 | 欧美一区二区三区视频在线观看 | 成人中文字幕电影| 日本一区二区三区在线不卡| 北条麻妃一区二区三区| 亚洲欧美激情一区二区| 欧美日韩一区成人| 美女久久久精品| 亚洲国产精品精华液2区45| 99国产精品久久久久久久久久久| 亚洲精品欧美激情| 制服丝袜激情欧洲亚洲| 不卡一区中文字幕| 国产精品不卡在线观看| 91女神在线视频| 日韩精品成人一区二区三区| 精品蜜桃在线看| 国产.欧美.日韩| 一区二区高清视频在线观看| 欧美精品aⅴ在线视频| 久久国产欧美日韩精品| 国产精品久久久久久久久动漫 | 欧美三级蜜桃2在线观看| 老司机免费视频一区二区| 国产亚洲欧美日韩日本| 在线精品亚洲一区二区不卡| 日本欧美在线观看| 国产精品三级av| 欧美精品久久一区二区三区| 国产高清成人在线| 亚洲国产精品久久久久秋霞影院 | 一区av在线播放| 精品国产乱码91久久久久久网站| 欧美成人精品二区三区99精品| 亚洲欧美一区二区三区孕妇| 蜜桃视频一区二区| www.亚洲免费av| 精品国产乱子伦一区| 亚洲综合无码一区二区| 亚洲男人电影天堂| 九九精品视频在线看| 91黄色在线观看| 日韩理论片在线| 日本高清不卡一区| 国产女人aaa级久久久级 | 中文字幕+乱码+中文字幕一区| 蜜桃一区二区三区在线| 91麻豆精品91久久久久久清纯|