zoukankan      html  css  js  c++  java
  • 【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:array[0..510]of longint;
    function dfs(now,p:longint):longint;
    var i,ll:longint;
    begin
      if now=n then exit(p);
      for i:=1 to n do
        if(l[now]+1=l[i])and(a[now,i]>0)then begin
          if a[now,i]>p then ll:=dfs(i,p)
          else ll:=dfs(i,a[now,i]);
          a[now,i]:=a[now,i]-ll; a[i,now]:=a[i,now]+ll;
          if ll>0 then exit(ll);
        end;
      exit(0);
    end;
    begin
      read(m,n);
      for i:=1 to m do begin
        read(x,y,z);
        a[x,y]:=a[x,y]+z;
      end;
      ans:=0;
      while true do begin
        for i:=1 to n do
          l[i]:=0;
        h:=1; t:=1; q[1]:=1; l[1]:=1;
        repeat
          for i:=1 to n do
            if(l[i]=0)and(a[q[h],i]>0)then begin
              inc(t); q[t]:=i; l[i]:=l[q[h]]+1;
            end;
          inc(h);
        until h>t;
        if l[n]=0 then break;
        repeat
          k:=dfs(1,maxint);
          ans:=ans+k;
        until k=0;
      end;
      writeln(ans);
    end.
    View Code
  • 相关阅读:
    深入理解Java Proxy机制
    StringBuilder与StringBuffer的区别
    反射
    list和set区别
    spring总结
    Hibernate与 MyBatis的比较
    手机拍照或选择照片上传html5代码
    JSP两种跳转
    离散化
    圆方树
  • 原文地址:https://www.cnblogs.com/quzhizhou/p/6279140.html
Copyright © 2011-2022 走看看