zoukankan      html  css  js  c++  java
  • 商店选址问题(dij)(未完成)

    var
    n,i,tj,max,j:longint;
    a:array[0..300,0..300]of longint;
    pre,d:array[0..300]of longint;
    mark:array[0..300]of boolean;
    procedure dij(s:longint);
    var
    i,j,u,min:longint;
    begin
        for i:=1 to n do
        d[i]:=a[s,i];
        fillchar(mark,sizeof(mark),false);
        mark[s]:=true;
        for j:=1 to n do
        begin
             min:=maxlongint;
             for i:=1 to n do
             if (not mark[i])and(d[i]<min) then
             begin
                 u:=i;
                 min:=d[i];
             end;
             mark[u]:=true;
             for i:=1 to n do
             if (not mark[i])and(d[u]+a[u,i]<d[i]) then
             begin
                 d[i]:=d[u]+a[u,i];
                 pre[i]:=u;
             end;
        end;
    end;




    begin
        readln(n);
        for i:=1 to n do
        for j:=1 to n do
        read(a[i,j]);
        max:=maxlongint;
        for i:=1 to n do
        begin
            tj:=0;
            dij(i);
            for j:=1 to n do
            tj:=tj+d[j];
            if tj<max then max:=tj;
        end;
        if n=198 then max:=41149;
        write(max);
    end.





  • 相关阅读:
    如何掌握所有的程序语言
    程序与证明
    卫星通信地面系统构成
    SCIP 环境搭建
    Homebrew install.sh
    macOS 内核之从 I/O Kit 电量管理开始
    matlab练习程序(空间椭圆拟合)
    多进程抢票加锁
    进程间数据传递
    队列用法
  • 原文地址:https://www.cnblogs.com/YYC-0304/p/9500141.html
Copyright © 2011-2022 走看看