zoukankan      html  css  js  c++  java
  • USACO 3.1 Agri-Net 最短网络 (最小生成树)(普里姆算法)

    题意

    农民约翰被选为他们镇的镇长!他其中一个竞选承诺就是在镇上建立起互联网,并连接到所有的农场。当然,他需要你的帮助。约翰已经给他的农场安排了一条高速的网络线路,他想把这条线路共享给其他农场。为了用最小的消费,他想铺设最短的光纤去连接所有的农场。你将得到一份各农场之间连接费用的列表,你必须找出能连接所有农场并所用光纤最短的方案。每两个农场间的距离不会超过100000  



    分析

    这题我是用普里姆算法

    一个一个点枚举,如果它小于min,并且它不等于0,那么min=这个点,记录下这个点



    var
    n,tj,i,j,k,x,y,t,min:longint;
    a:array[0..200,0..200]of longint;
    f:array[0..200]of longint;
    begin
        readln(n);
        fillchar(a,sizeof(a),0);
        fillchar(f,sizeof(f),0);
        for i:=1 to n do
        for j:=1 to n do
        read(a[i,j]);
        f[1]:=1;
        tj:=0;
        for i:=1 to n-1 do
        begin
            min:=maxlongint;
            for j:=1 to n do
            if f[j]=1 then
              for k:=1 to n do
              if f[k]=0 then
              if (a[j,k]<min)and(a[j,k]<>0) then
              begin
                  min:=a[j,k];
                  t:=k;
              end;
            if min<>maxint then
            begin
                tj:=tj+min;
                f[t]:=1;
            end;
        end;
        write(tj);
    end.

  • 相关阅读:
    centos 编码问题 编码转换 cd到对应目录 执行 中文解压
    centos 编码问题 编码转换 cd到对应目录 执行 中文解压
    centos 编码问题 编码转换 cd到对应目录 执行 中文解压
    Android MVP 十分钟入门!
    Android MVP 十分钟入门!
    Android MVP 十分钟入门!
    Android MVP 十分钟入门!
    mysql备份及恢复
    mysql备份及恢复
    mysql备份及恢复
  • 原文地址:https://www.cnblogs.com/YYC-0304/p/9500152.html
Copyright © 2011-2022 走看看