Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

感觉是不是这样的就成有向了?

Posted by TN at 2005-06-11 21:39:07 on Problem 2421
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:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator