program rrr(input,output);
const
inf=;
type
pointer=^nodetype;
nodetype=record
t,c:longint;
next,rev:pointer;
end;
var
a,cur:array[..]of pointer;
d,q:array[..]of longint;
p:pointer;
i,n,m,s,t,c,x,y,ans:longint;
function min(a,b:longint):longint;
begin
if a<b then exit(a) else exit(b);
end;
procedure add(x,y,c:longint);
begin
new(p);p^.t:=y;p^.c:=c;p^.next:=a[x];a[x]:=p;
end;
procedure bfs;
var
h,t:longint;
begin
for i:= to n do d[i]:=-;
h:=;t:=;q[]:=s;d[s]:=;
while h<=t do
begin
p:=a[q[h]];
while p<>nil do
begin
if (d[p^.t]=-) and (p^.c>) then
begin
d[p^.t]:=d[q[h]]+;
inc(t);q[t]:=p^.t;
end;
p:=p^.next;
end;
inc(h);
end;
end;
function dfs(k,f:longint):longint;
var
ans,r:longint;
p:pointer;
begin
if (k=t) or (f=) then exit(f);
ans:=;
p:=cur[k];
while p<>nil do
begin
if (d[p^.t]=d[k]+) and (p^.c>) then
begin
r:=dfs(p^.t,min(f,p^.c));
p^.c:=p^.c-r;
p^.rev^.c:=p^.rev^.c+r;
f:=f-r;
ans:=ans+r;
if f= then break;
end;
p:=p^.next;
cur[k]:=p;
end;
if f> then d[k]:=-;
exit(ans);
end;
begin
assign(input,'r.in');assign(output,'r.out');reset(input);rewrite(output);
readln(n,m,s,t);
for i:= to n do a[i]:=nil;
for i:= to m do
begin
readln(x,y,c);
if x=y then continue;
add(x,y,c);add(y,x,);
a[x]^.rev:=a[y];a[y]^.rev:=a[x];
end;
ans:=;
while true do
begin
bfs;
if d[t]=- then break;
for i:= to n do cur[i]:=a[i];
ans:=ans+dfs(s,inf);
end;
write(ans);
close(input);close(output);
end.

最大流Dinic算法模板(pascal)的更多相关文章

  1. POJ 3469.Dual Core CPU 最大流dinic算法模板

    Dual Core CPU Time Limit: 15000MS   Memory Limit: 131072K Total Submissions: 24830   Accepted: 10756 ...

  2. 求最大流dinic算法模板

    //最短增广路,Dinic算法 struct Edge { int from,to,cap,flow; };//弧度 void AddEdge(int from,int to,int cap) //增 ...

  3. poj 1273最大流dinic算法模板

    #include<stdio.h> #include<string.h> #define N 300 #define inf 0x7fffffff #include<qu ...

  4. HDU1532最大流 Edmonds-Karp,Dinic算法 模板

    Drainage Ditches Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) To ...

  5. POJ 1815 - Friendship - [拆点最大流求最小点割集][暴力枚举求升序割点] - [Dinic算法模板 - 邻接矩阵型]

    妖怪题目,做到现在:2017/8/19 - 1:41…… 不过想想还是值得的,至少邻接矩阵型的Dinic算法模板get√ 题目链接:http://poj.org/problem?id=1815 Tim ...

  6. POJ 1273 Drainage Ditches(网络流dinic算法模板)

    POJ 1273给出M条边,N个点,求源点1到汇点N的最大流量. 本文主要就是附上dinic的模板,供以后参考. #include <iostream> #include <stdi ...

  7. hdu 2435 dinic算法模板+最小割性质

    #include<stdio.h> #include<queue> #include<string.h> using namespace std; #define ...

  8. 网络流之最大流Dinic算法模版

    /* 网络流之最大流Dinic算法模版 */ #include <cstring> #include <cstdio> #include <queue> using ...

  9. POJ 1273 - Drainage Ditches - [最大流模板题] - [EK算法模板][Dinic算法模板 - 邻接表型]

    题目链接:http://poj.org/problem?id=1273 Time Limit: 1000MS Memory Limit: 10000K Description Every time i ...

随机推荐

  1. install netcdf

    https://gist.github.com/perrette/cd815d03830b53e24c82

  2. Qt QStringLiteral

    zz 解释QStringLiteral 原文发表于woboq网站  QStringLiteral explained 转载 原作者: Olivier Goffart 译者:zzjin QStringL ...

  3. HBase——使用Put迁移MySql数据到Hbase

    先上code: /** * 功能:迁移mysql上电池历史数据到hbase * Created by liuhuichao on 2016/12/6. */ public class MySqlToH ...

  4. day8 opencv3 ,没有GMG MOG

    Traceback (most recent call last): File , in <module> fgbg = cv2.createBackgroundSubtractorGMG ...

  5. ELKStack入门篇(二)之Nginx、Tomcat、Java日志收集以及TCP收集日志使用

    1.收集Nginx的json格式日志 1.1.Nginx安装 [root@linux-node1 ~]# yum install nginx -y [root@linux-node1 ~]# vim ...

  6. Redis可视化客户端管理Web UI工具收集

    https://github.com/uglide/RedisDesktopManager(推荐,全平台支持的桌面UI工具) Web方案: https://github.com/ErikDubbelb ...

  7. maven 手动安装jar包

    1.问题 maven有时候在pom文件引入jar包会报错,所以可以通过手动导入jar包的方式导入. 2.解决: 通过maven命令导入jar包, mvn install:install-file -D ...

  8. Jupyter 安装并配置工作路径[转]

    1.通过python的pip方式安装jupyterpython和pip都安装好后,通过cmd进入命令提示窗口,找到python安装目录下的Script目录,例如我的是路径是:C:\Program Fi ...

  9. Java EE JSP内置对象及表达式语言

    一.JSP内置对象 JSP根据Servlet API规范提供了一些内置对象,开发者不用事先声明就可使用标准变量来访问这些对象. JSP提供了9种内置对象: (一).request 简述: JSP编程中 ...

  10. python循环结构

    while循环 while 条件表达式: 语句块 while语句的条件表达式是循环条件,常用的是关系表达式或者逻辑表达式,语句块是循环执行的语句. n=1 p=1 num=int(input(&quo ...