• SSL 1612——最优布线问题(最小生成树)


    Description

    学校有n台计算机,为了方便数据传输,现要将它们用数据线连接起来。两台计算机被连接是指它们之间有数据线连接。由于计算机所处的位置不同,因此不同的两台计算机的连接费用往往是不同的。
    当然,如果将任意两台计算机都用数据线连接,费用将是相当庞大的。为了节省费用,我们采用数据的间接传输手段,即一台计算机可以间接的通过若干台计算机(作为中转)来实现与另一台计算机的连接。
    现在由你负责连接这些计算机,你的任务是使任意两台计算机都连通(不管是直接的或间接的)。

    Input

    输入文件wire.in,第一行为整数n(2<=n<=100),表示计算机的数目。此后的n行,每行n个整数。第x+1行y列的整数表示直接连接第x台计算机和第y台计算机的费用。

    Output

    输出文件wire.out,一个整数,表示最小的连接费用。

    Sample Input

    3
    0 1 2
    1 0 1
    2 1 0
    Sample Output

    2(注:表示连接1和2,2和3,费用为2)


    http://blog.csdn.net/ssl_zzy/article/details/65651835一样。


    代码如下:

    var  n,i,j,k,t,min,ans:longint; 
         a:array[0..101,0..101]of longint;
         v:array[0..101]of longint;
    begin
      readln(n);
      for i:=1 to n do
        begin
          for j:=1 to n do read(a[i,j]);
          readln;
        end;
      fillchar(v,sizeof(v),#0);
      v[1]:=1;
      for i:=1 to n-1 do
        begin
          min:=maxlongint;
          for j:=1 to n do
            if v[j]=1 then
              for k:=1 to n do
                if v[k]=0 then
                  if (a[j,k]<min)and(a[j,k]<>0) then
                    begin
                      min:=a[j,k];
                      t:=k;
                    end;
          if min<>maxlongint then
            begin
              v[t]:=1;
              ans:=ans+min;
            end;
        end;
      write(ans);
    end.
  • 相关阅读:
    myBatsi调用存储过程
    Db2与Oracle的区别
    动态SQL与模糊查询
    一对多联表查询
    一对一联表查询
    025 资源的隔离与配置
    024 Yarn核心生态系统
    sift算法特征点如何匹配?
    Camera 图像处理原理分析
    基于灰度世界、完美反射、动态阈值等图像自动白平衡算法的原理、实现及效果
  • 原文地址:https://www.cnblogs.com/Comfortable/p/8412355.html
Copyright © 2020-2023  润新知