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 |
为什么会WA?百思不得其解啊。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