| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:为什么会WA?百思不得其解啊。In Reply To:为什么会WA?百思不得其解啊。 Posted by:lydliyudong at 2011-01-25 18:34:12 > var
> q,incf,link:array[0..2000]of longint;
> vis:array[0..1000]of boolean;
> f:array[0..1000,0..1000]of longint;
> n,p,c,m,i,u,v,s,t,w:longint;
> ch:char;
> str:string;
>
> function maxflow:longint;
>
> function min(x,y:longint):longint;
> begin
> if x<y then exit(x) else exit(y);
> end;
>
> function bfs:boolean;
> var
> l,r,u,v:longint;
> begin
> fillchar(q,sizeof(q),0);
> fillchar(vis,sizeof(vis),0);
> fillchar(link,sizeof(link),0);
> fillchar(incf,sizeof(incf),0);
> l:=1; r:=1;
> q[1]:=s; vis[s]:=true;
> link[s]:=s;
> incf[s]:=maxlongint;
> while l<=r do
> begin
> u:=q[l];
> for i:=0 to n+2 do
> if not vis[i] and(f[u,i]>0) then
> begin
> vis[i]:=true;
> inc(r);
> q[r]:=i;
> link[i]:=u;
> incf[i]:=min(incf[u],f[u,i]);
> if i=t then exit(true);
> end;
> inc(l);
> end;
> exit(false);
> end;
>
> procedure update;
> var
> u,v:longint;
> begin
> u:=t;
> while u<>s do
> begin
> v:=u;
> u:=link[v];
> dec(f[u,v],incf[t]);
> inc(f[v,u],incf[t]);
> end;
> inc(maxflow,incf[t]);
> end;
>
> begin
> maxflow:=0;
> while bfs do update;
> end;
>
> begin
> repeat
> read(n,p,c,m);
> s:=n+1; t:=n+2;
> fillchar(f,sizeof(f),0);
> for i:=1 to m do
> begin
> repeat read(ch); until ch='(';
> repeat read(ch); str:=str+ch; until ch=',';
> delete(str,length(str),1);
> val(str,u); str:='';
> repeat read(ch); str:=str+ch; until ch=')';
> delete(str,length(str),1);
> val(str,v); str:='';
> read(f[u,v]);
> end;
> for i:=1 to p do
> begin
> repeat read(ch); until ch='(';
> repeat read(ch); str:=str+ch; until ch=')';
> delete(str,length(str),1);
> val(str,u); str:='';
> read(f[s,u]);
> end;
> for i:=1 to c do
> begin
> repeat read(ch); until ch='(';
> repeat read(ch); str:=str+ch; until ch=')';
> delete(str,length(str),1);
> val(str,v); str:='';
> read(f[v,t]);
> end;
> writeln(maxflow);
> until eof;
> end.
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator