{"id":142,"date":"2012-08-16T12:28:00","date_gmt":"2012-08-16T04:28:00","guid":{"rendered":"http:\/\/nike0good.jp1.rpvhost.net\/30"},"modified":"2012-08-16T12:28:00","modified_gmt":"2012-08-16T04:28:00","slug":"poj_1273_network_flow_-_attached_hllp__sap_template","status":"publish","type":"post","link":"https:\/\/nike0good.com\/?p=142","title":{"rendered":"POJ 1273(\u7f51\u7edc\u6d41-\u9644hllp+sap\u6a21\u677f\uff09"},"content":{"rendered":"<p>\u7f51\u7edc\u6d41\u5165\u95e8\u9898\u76ee<\/p>\n<p>\n<\/p>\n<\/p>\n<pre name=\"code\" class=\"delphi\">Program P1273;\nVar\n   n,m,i,j,x,y,p,level:longint;\n   map,f:array[1..400,1..400] of longint;\n   list:array[0..400,0..400] of longint;\n   queue:array[1..400] of longint;\n   b:array[1..400] of boolean;\n   d,e:array[1..400] of longint;\nfunction min(a,b:longint):longint;\nbegin\n   if a&lt;b then exit(a) else exit(b);\nend;\nfunction max(a,b:longint):longint;\nbegin\n   if a&gt;b then exit(a) else exit(b);\nend;\nprocedure dijstra;\nvar\n   h,t,i:longint;\nbegin\n   queue[1]:=n;\n   b[n]:=true;\n   h:=1;\n   t:=1;\n   while h&lt;=t do\n   begin\n      for i:=1 to n-1 do\n         if (map[i,queue[h]]&gt;0) and (not(b[i])) then\n         begin\n            inc(t);\n            queue[t]:=i;\n            b[i]:=true;\n            d[i]:=d[queue[h]]+1;\n         end;\n      inc(h);\n   end;\n   d[1]:=n+1;\nend;\nprocedure push(i,j:longint);\nvar\n   flow:longint;\nbegin\n   flow:=min(map[i,j]-f[i,j],e[i]);\n\n   if (e[j]=0) and (j&lt;&gt;1) and (j&lt;&gt;n) then\n   begin\n      inc(list[d[j],0]);\n      list[d[j],list[d[j],0]]:=j;\n      level:=max(level,d[j]);\n   end;\n\n   dec(e[i],flow);\n   inc(e[j],flow);\n   inc(f[i,j],flow);\n   f[j,i]:=-f[i,j];\nend;\nprocedure relable(i:longint);\nvar\n   j,minj:longint;\nbegin\n   minj:=maxlongint;\n   for j:=1 to n do\n      if (map[i,j]-f[i,j]&gt;0) and (b[j]) then\n         minj:=min(minj,d[j]);\n   d[i]:=minj+1;\n\n   level:=d[i];\n   list[level,0]:=1;\n   list[level,1]:=i;\nend;\nprocedure sa;\nvar\n   i,j,minj:longint;\n   tag:boolean;\nbegin\n   dijstra;\n   level:=0;\n   for i:=1 to n do\n      if (map[1,i]&gt;0) and (b[i]) then\n      begin\n         dec(e[1],map[1,i]);\n         inc(e[i],map[1,i]);\n         inc(f[1,i],map[1,i]);\n         f[i,1]:=-f[1,i];\n         inc(list[d[i],0]);\n         list[d[i],list[d[i],0]]:=i;\n         level:=max(level,d[i]);\n      end;\n   while (level&gt;0) do\n   begin\n      i:=list[level,list[level,0]];\n      dec(list[level,0]);\n      while (level&gt;0) and (list[level,0]=0) do dec(level);\n\n      for j:=1 to n do\n         if (map[i,j]-f[i,j]&gt;0) and (d[i]=d[j]+1) and (b[j]) then\n         begin\n            push(i,j);\n            if e[i]=0 then break;\n         end;\n      if e[i]&gt;0 then relable(i);\n   end;\nend;\nbegin\n   while not eof do\n   begin\n      fillchar(map,sizeof(map),0);\n      fillchar(f,sizeof(f),0);\n      fillchar(d,sizeof(d),0);\n      fillchar(b,sizeof(b),false);\n      fillchar(list,sizeof(list),0);\n      fillchar(e,sizeof(e),0);\n      readln(m,n);\n      for i:=1 to m do\n      begin\n         readln(x,y,p);\n         inc(map[x,y],p);\n      end;\n      sa;\n      writeln(e[n]);\n   end;\nend.\n<\/pre>\n<p><\/p>\n<p>Sap\uff1a<\/p>\n<p><pre name=\"code\" class=\"cpp\">#include&lt;cstdio&gt;\n#include&lt;iostream&gt;\n#include&lt;algorithm&gt;\n#include&lt;functional&gt;\n#include&lt;cstdlib&gt;\n#include&lt;cstring&gt;\nusing namespace std;\n#define MAXN (200000+10)\n#define MAXNnode (200000+10)\n#define MAXedge (200000+10)\n#define INF (2139062143)\nint n,m,size,edge[MAXedge],pre[MAXNnode],next[MAXedge],weight[MAXedge],s,t;\nint un(int p){return (p%2)?(p+1):p-1;}\nvoid addedge(int u,int v,int w)\n{\n     edge[++size]=v;weight[size]=w;\n     next[size]=pre[u];pre[u]=size;\n     edge[++size]=u;weight[size]=0;\n     next[size]=pre[v];pre[v]=size;\n}\nint q[MAXN*10],d[MAXN*2],pre2[MAXN],cnt[MAXN];\nvoid spfa()\n{\n    int head=1,tail=1;\n    memset(d,127,sizeof(d));\n    q[1]=t;d[t]=0;\n    while (head&lt;=tail)\n    {\n        int &amp;u=q[head];\n        for (int p=pre[u];p;p=next[p])\n        {\n            int &amp;v=edge[p];\n            if (d[v]&gt;d[u]+1)\n            {\n               d[v]=d[u]+1;\n               q[++tail]=v;\n               cnt[d[v]]++;\n            }\n        }\n        head++;\n    }\n\n}\nint relable(int u)\n{\n    int minj=n;\n    for (int p=pre[u];p;p=next[p])\n        if (weight[p]&amp;&amp;d[edge[p]]!=INF) minj=min(minj,d[edge[p]]+1);\n    return minj;\n}\nlong long sap()\n{\n     spfa();\n     int now=s;\n\t long long nowflow=INF,maxflow=0;\n     while (1)\n     {\n         int flag=0;\n         for (int p=pre[now];p;p=next[p])\n         {\n             int &amp;v=edge[p];\n             if (weight[p]&amp;&amp;d[v]==d[now]-1)\n             {\n                 flag=v;\n                 pre2[v]=p;\n                 now=v;\n                 break;\n             }\n         }\n         if (flag)\n         {\n            if (now==t)\n            {\n               nowflow=INF;\n               for (int p=now;p!=s;p=edge[un(pre2[p])])\n                   nowflow=min(nowflow,(long long )weight[pre2[p]]);\n               maxflow+=nowflow;\n               for (int p=now;p!=s;p=edge[un(pre2[p])])\n               {\n                   weight[pre2[p]]-=nowflow;\n                   weight[un(pre2[p])]+=nowflow;\n               }\n               now=s;\n               memset(pre2,0,sizeof(pre2));\n            }\n         }\n         else\n         {\n             if (--cnt[d[now]]==0) break;\n             d[now]=relable(now);\n             cnt[d[now]]++;\n             if (now!=s) now=edge[un(pre2[now])];\n     \t}\n     }\n     return maxflow;\n}\nint main()\n{\n\twhile (scanf(&quot;%d%d&quot;,&amp;m,&amp;n)==2)\n\t{\n\t    memset(pre,0,sizeof(pre));\n\t    memset(next,0,sizeof(next));\n\t    memset(edge,0,sizeof(edge));\n\t    memset(weight,0,sizeof(weight));\n    \t    memset(cnt,0,sizeof(cnt));\n\t    size=0; s=1;t=n;\n            for (int i=1;i&lt;=m;i++)\n\t    {\n    \t        int u,v,w;\n        \tcin&gt;&gt;u&gt;&gt;v&gt;&gt;w;\n  \t        addedge(u,v,w);\n    \t    }\n   <span style=\"white-space:pre\"> <\/span>    if (m==0) cout&lt;&lt;'0'&lt;&lt;endl;\n\t    else cout&lt;&lt;sap()&lt;&lt;endl;\n\t}\n\treturn 0;\n}<\/pre><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u7f51\u7edc\u6d41\u5165\u95e8\u9898\u76ee Program P1273; Var n,m,i,j,x,y,p,level:longint; [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","footnotes":""},"categories":[3],"tags":[113],"class_list":["post-142","post","type-post","status-publish","format-standard","hentry","category-defaultcategory","tag-network_flow"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>POJ 1273(\u7f51\u7edc\u6d41-\u9644hllp+sap\u6a21\u677f\uff09 - nike0good<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/nike0good.com\/?p=142\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"POJ 1273(\u7f51\u7edc\u6d41-\u9644hllp+sap\u6a21\u677f\uff09 - nike0good\" \/>\n<meta property=\"og:description\" content=\"\u7f51\u7edc\u6d41\u5165\u95e8\u9898\u76ee Program P1273; Var n,m,i,j,x,y,p,level:longint; [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/nike0good.com\/?p=142\" \/>\n<meta property=\"og:site_name\" content=\"nike0good\" \/>\n<meta property=\"article:published_time\" content=\"2012-08-16T04:28:00+00:00\" \/>\n<meta name=\"author\" content=\"nike0good\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"nike0good\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/nike0good.com\\\/?p=142#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/nike0good.com\\\/?p=142\"},\"author\":{\"name\":\"nike0good\",\"@id\":\"https:\\\/\\\/nike0good.com\\\/#\\\/schema\\\/person\\\/4defa38da89de87e400861e73396baad\"},\"headline\":\"POJ 1273(\u7f51\u7edc\u6d41-\u9644hllp+sap\u6a21\u677f\uff09\",\"datePublished\":\"2012-08-16T04:28:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/nike0good.com\\\/?p=142\"},\"wordCount\":5,\"commentCount\":0,\"keywords\":[\"\u7f51\u7edc\u6d41\"],\"articleSection\":[\"DefaultCategory\"],\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/nike0good.com\\\/?p=142#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/nike0good.com\\\/?p=142\",\"url\":\"https:\\\/\\\/nike0good.com\\\/?p=142\",\"name\":\"POJ 1273(\u7f51\u7edc\u6d41-\u9644hllp+sap\u6a21\u677f\uff09 - nike0good\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/nike0good.com\\\/#website\"},\"datePublished\":\"2012-08-16T04:28:00+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/nike0good.com\\\/#\\\/schema\\\/person\\\/4defa38da89de87e400861e73396baad\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/nike0good.com\\\/?p=142#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/nike0good.com\\\/?p=142\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/nike0good.com\\\/?p=142#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/nike0good.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"POJ 1273(\u7f51\u7edc\u6d41-\u9644hllp+sap\u6a21\u677f\uff09\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/nike0good.com\\\/#website\",\"url\":\"https:\\\/\\\/nike0good.com\\\/\",\"name\":\"nike0good\",\"description\":\"\u6709\u6240\u4f5c\u4e3a\u662f\u4eba\u751f\u7684\u6700\u9ad8\u5883\u754c\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/nike0good.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/nike0good.com\\\/#\\\/schema\\\/person\\\/4defa38da89de87e400861e73396baad\",\"name\":\"nike0good\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8e5fa08d5c367a1a6fb5ff13bb10ed5a331f981513256951290ae42322da6854?s=96&d=identicon&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8e5fa08d5c367a1a6fb5ff13bb10ed5a331f981513256951290ae42322da6854?s=96&d=identicon&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8e5fa08d5c367a1a6fb5ff13bb10ed5a331f981513256951290ae42322da6854?s=96&d=identicon&r=g\",\"caption\":\"nike0good\"},\"sameAs\":[\"https:\\\/\\\/nike0good.com\"],\"url\":\"https:\\\/\\\/nike0good.com\\\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"POJ 1273(\u7f51\u7edc\u6d41-\u9644hllp+sap\u6a21\u677f\uff09 - nike0good","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/nike0good.com\/?p=142","og_locale":"zh_CN","og_type":"article","og_title":"POJ 1273(\u7f51\u7edc\u6d41-\u9644hllp+sap\u6a21\u677f\uff09 - nike0good","og_description":"\u7f51\u7edc\u6d41\u5165\u95e8\u9898\u76ee Program P1273; Var n,m,i,j,x,y,p,level:longint; [&hellip;]","og_url":"https:\/\/nike0good.com\/?p=142","og_site_name":"nike0good","article_published_time":"2012-08-16T04:28:00+00:00","author":"nike0good","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"nike0good","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"4 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/nike0good.com\/?p=142#article","isPartOf":{"@id":"https:\/\/nike0good.com\/?p=142"},"author":{"name":"nike0good","@id":"https:\/\/nike0good.com\/#\/schema\/person\/4defa38da89de87e400861e73396baad"},"headline":"POJ 1273(\u7f51\u7edc\u6d41-\u9644hllp+sap\u6a21\u677f\uff09","datePublished":"2012-08-16T04:28:00+00:00","mainEntityOfPage":{"@id":"https:\/\/nike0good.com\/?p=142"},"wordCount":5,"commentCount":0,"keywords":["\u7f51\u7edc\u6d41"],"articleSection":["DefaultCategory"],"inLanguage":"zh-Hans","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/nike0good.com\/?p=142#respond"]}]},{"@type":"WebPage","@id":"https:\/\/nike0good.com\/?p=142","url":"https:\/\/nike0good.com\/?p=142","name":"POJ 1273(\u7f51\u7edc\u6d41-\u9644hllp+sap\u6a21\u677f\uff09 - nike0good","isPartOf":{"@id":"https:\/\/nike0good.com\/#website"},"datePublished":"2012-08-16T04:28:00+00:00","author":{"@id":"https:\/\/nike0good.com\/#\/schema\/person\/4defa38da89de87e400861e73396baad"},"breadcrumb":{"@id":"https:\/\/nike0good.com\/?p=142#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/nike0good.com\/?p=142"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/nike0good.com\/?p=142#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/nike0good.com\/"},{"@type":"ListItem","position":2,"name":"POJ 1273(\u7f51\u7edc\u6d41-\u9644hllp+sap\u6a21\u677f\uff09"}]},{"@type":"WebSite","@id":"https:\/\/nike0good.com\/#website","url":"https:\/\/nike0good.com\/","name":"nike0good","description":"\u6709\u6240\u4f5c\u4e3a\u662f\u4eba\u751f\u7684\u6700\u9ad8\u5883\u754c","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/nike0good.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/nike0good.com\/#\/schema\/person\/4defa38da89de87e400861e73396baad","name":"nike0good","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/secure.gravatar.com\/avatar\/8e5fa08d5c367a1a6fb5ff13bb10ed5a331f981513256951290ae42322da6854?s=96&d=identicon&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/8e5fa08d5c367a1a6fb5ff13bb10ed5a331f981513256951290ae42322da6854?s=96&d=identicon&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/8e5fa08d5c367a1a6fb5ff13bb10ed5a331f981513256951290ae42322da6854?s=96&d=identicon&r=g","caption":"nike0good"},"sameAs":["https:\/\/nike0good.com"],"url":"https:\/\/nike0good.com\/?author=1"}]}},"_links":{"self":[{"href":"https:\/\/nike0good.com\/index.php?rest_route=\/wp\/v2\/posts\/142","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nike0good.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nike0good.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nike0good.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/nike0good.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=142"}],"version-history":[{"count":0,"href":"https:\/\/nike0good.com\/index.php?rest_route=\/wp\/v2\/posts\/142\/revisions"}],"wp:attachment":[{"href":"https:\/\/nike0good.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=142"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nike0good.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=142"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nike0good.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=142"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}