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.





  • 相关阅读:
    DataTable转换成IList<T>的简单实现
    websocket
    获取用户使用设备信息
    判断对象是否相等
    关于PC适配
    树形数据结构实现平铺展示
    埋点
    多层表单验证
    表格行拖动,数据中状态值不同的禁止拖拽
    element tree 深度查询
  • 原文地址:https://www.cnblogs.com/YYC-0304/p/9500141.html
Copyright © 2011-2022 走看看