首页 > 其他 > 详细

bzoj 1083 最小生成树

时间:2014-01-15 20:13:40      阅读:432      评论:0      收藏:0      [点我收藏+]

  裸的最小生成树。 

bubuko.com,布布扣
/**************************************************************
    Problem: 1083
    User: BLADEVIL
    Language: Pascal
    Result: Accepted
    Time:44 ms
    Memory:344 kb
****************************************************************/
 
//By BLADEVIL
var
    n, m                    :longint;
    pre, succ, len          :array[0..10010] of longint;
    father                  :array[0..400] of longint;
    ans                     :longint;
     
procedure swap(var a,b:longint);
var
    c                       :longint;
begin
    c:=a; a:=b; b:=c;
end;
     
procedure qs(low,high:longint);
var
    i, j                    :longint;
    xx                      :longint;
begin
    i:=low; j:=high; xx:=len[(i+j)>>1];
    while i<j do
    begin
        while xx>len[i] do inc(i);
        while xx<len[j] do dec(j);
        if i<=j then
        begin
            swap(succ[i],succ[j]);
            swap(pre[i],pre[j]);
            swap(len[i],len[j]);
            inc(i); dec(j);
        end;
    end;
    if i<high then qs(i,high);
    if j>low then qs(low,j);
end;
 
procedure init;
var
    i                       :longint;
begin
    read(n,m);
    for i:=1 to m do read(pre[i],succ[i],len[i]);
    qs(1,m);
end;
 
function getfather(x:longint):longint;
begin
    if father[x]=x then exit(x);
    father[x]:=getfather(father[x]);
    exit(father[x]);
end;
 
procedure main;
var
    i                       :longint;
    a, b, fa, fb            :longint;
begin
    for i:=1 to n do father[i]:=i;
    for i:=1 to m do
    begin
        a:=pre[i];
        b:=succ[i];
        fa:=getfather(a);
        fb:=getfather(b);
        if fa<>fb then
        begin
            ans:=len[i];
            father[fa]:=fb;
        end;
    end;
    writeln(n-1, ,ans);
end;
 
 
begin
    init;
    main;
end.
bubuko.com,布布扣

bzoj 1083 最小生成树

原文:http://www.cnblogs.com/BLADEVIL/p/3515268.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!