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. 20155330 2016-2017-2 《Java程序设计》第九周学习总结

    20155330 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 学习目标 了解JDBC架构 掌握JDBC架构 掌握反射与ClassLoader 了解自定义泛 ...

  2. 微服务(SOP)日志管理

    问题: 大型企业应用规模大,调试 / 解决问题由于在生产环境中不会有开发环境的调试工具,如果需要模拟还原当时的环境, 目前的解决办法是进行日志记录 日志记录的常用方式: 使用SpringAop进行切入 ...

  3. 使用WinIO库实现保护模式下的IO和内存读写

    问题已解决: 原因是函数的调用方式与WinIO中不一致,使用的时候漏掉了__stdcall. 函数原定义为: 在实际的GPIO读写中遇到以下问题: SetPortVal可正常写入,但是GetPortV ...

  4. day1 Opencv安装 python 2.7 (32位)

    [参考安装步骤] http://opencv-python-tutroals.readthedocs.io/en/latest/index.html http://blog.csdn.net/huru ...

  5. 国外10个ASP.Net C#下的开源CMS

    国外10个ASP.Net C#下的开源CMS https://blog.csdn.net/peng_hai_lin/article/details/8612895   1.Ludico Ludico是 ...

  6. Intellif IDEA 自带数据库管理工具 DataBase 配置

    第一步: 第二步: 第三步: jdbc:oracle:thin:@192.168.19.39:1521:orcl

  7. python5

    print应用 // 输出两行 print "hahaha" print "hehehe" // 输出在同一行里 print "hahaha" ...

  8. Qt-Qt5最新增加程序图标方式

    亲爱的小伙伴吗,还记得原始的Qt4是怎么给运行程序添加图标的么,是不是先准备一个ICON文件,问了在家里建立一个rc文件,在文件里面加上 IDI_ICON1               ICON    ...

  9. 学习使用Git 版本控制 代码管理

    title: 学习使用Git 版本控制 代码管理 notebook: 经验累积 tags:Git --- Git 版本控制 学习教程 Git版本控制器,可以作为程序员.计算机科学和软件工程的研究人员在 ...

  10. C# 钱数 小写 转 大写

    public class Rmb { /// <summary> /// 转换人民币大小金额 /// </summary> /// <param name="n ...