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 |
哪位大牛帮小弟看看哪里错了..快疯了..- -const max=1000000; var t,n,k,tot:longint; a:array[1..15,1..15] of longint; vx,vy:array[1..15] of boolean; l,lx,ly:array[1..15] of longint; procedure init; var i,j,x:longint; begin fillchar(a,sizeof(a),0); readln(n); for i:=1 to n do for j:=1 to n do begin read(x); inc(a[i,x],j-1); end; for i:=1 to n do for j:=1 to n do begin read(x); inc(a[x,i],j-1); end; for i:=1 to n do for j:=1 to n do a[i,j]:=max-a[i,j]; end; function find(x:longint):boolean; var i:longint; begin if x=0 then exit(true); vx[x]:=true; for i:=1 to n do if (not vy[i]) and (lx[x]+ly[i]=a[x,i]) then begin vy[i]:=true; if find(l[i]) then begin l[i]:=x; exit(true) end end; exit(false); end; procedure print; var i:longint; begin inc(tot); writeln('Best Pairing ',tot); for i:=1 to n do writeln('Supervisor ',i,' with Employee ',l[i]); end; procedure dfs(x,s,t:longint); var i:longint; begin if (s=t) and (x>n) then begin print; exit; end; if s>=t then exit; for i:=1 to n do if (l[i]=0) and (max-a[x,i]+s<=t) then begin l[i]:=x; dfs(x+1,s+max-a[x,i],t); l[i]:=0; end; end; procedure main; var i,j,t,min,ans:longint; begin fillchar(lx,sizeof(lx),0); fillchar(ly,sizeof(ly),0); for i:=1 to n do for j:=1 to n do if lx[i]<a[i,j] then lx[i]:=a[i,j]; for t:=1 to n do repeat fillchar(vx,sizeof(vx),false); fillchar(vy,sizeof(vy),false); if find(t) then break; min:=maxlongint; for i:=1 to n do if vx[i] then for j:=1 to n do if not vy[j] then if lx[i]+ly[j]-a[i,j]<min then min:=lx[i]+ly[j]-a[i,j]; for i:=1 to n do if vx[i] then dec(lx[i],min); for i:=1 to n do if vy[i] then inc(ly[i],min); until false; ans:=0; for i:=1 to n do ans:=ans+max-a[l[i],i]; writeln('Data Set ',k,' Best average difference: ',ans/n/2:0:6); fillchar(l,sizeof(l),0); tot:=0; dfs(1,0,ans); writeln; end; begin readln(t); for k:=1 to t do begin init; main; end; end. 边权的设定有错吗? Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator