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 |
感觉是不是这样的就成有向了?In Reply To:为什么WA? Posted by:JiangLY at 2005-06-11 21:35:46 > 我的思路是把已有的边赋成0,然后Prim. > 程序: > var > m:array[1..300,1..300] of longint; > n,t,ans:longint; > procedure init; > var > i,j,a,b:longint; > begin > readln(n); > for i:=1 to n do > begin > for j:=1 to n do read(m[i,j]); > readln; > end; > readln(t); > for i:=1 to n do > for j:=1 to n do > if m[i,j]=0 then m[i,j]:=maxlongint; > for i:=1 to t do > begin > readln(a,b); > m[a,b]:=0; > end; > ans:=0; > end; > procedure prim; > var > l,c:array[1..300] of longint; > mark:array[1..300] of boolean; > i,j,k,min:longint; > begin > for i:=1 to n do > begin > l[i]:=m[1,i]; > c[i]:=1; > end; > l[1]:=-1; > for i:=1 to n-1 do > begin > min:=maxlongint; > for j:=1 to n do > if (l[j]<min)and(l[j]<>-1) then > begin > min:=l[j]; > k:=j; > end; > ans:=ans+m[c[k],k]; > l[k]:=-1; > for j:=1 to n do > if m[k,j]<l[j] then > begin > l[j]:=m[k,j]; > c[j]:=k; > end; > end; > end; > procedure print; > begin > writeln(ans); > end; > begin > while not seekeof do > begin > init; > prim; > print; > end; > end. Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator