zoukankan      html  css  js  c++  java
  • POJ 3255 dijkstra次短路

    不说什么了,看代码吧。

    program p3255;
    
    Type
     rec=record
       e,w,next:longint;
     end;
    
    Var
     n,m,i,j,k,nowmin,minj,mink,u,top,st,ed,ww:longint;
     y:rec;
     a:array[0..200002] of rec;
     b:array[0..10002] of longint;
     v:array[1..2,0..10002] of boolean;
     d:array[1..2,0..10002] of longint;
    
    Procedure add(st,ed,ww:longint);inline;
      begin
      inc(top);
      with a[top] do
        begin
        e:=ed;
        w:=ww;
        next:=b[st];
      end;
      b[st]:=top;
    end;
    
      begin
      readln(n,m);
      top:=0;
      for i:=1 to m do
        begin
        readln(st,ed,ww);
        add(st,ed,ww);
        add(ed,st,ww);
      end;
      fillchar(v,sizeof(v),false);
      fillchar(d,sizeof(d),$7f);
      d[1,1]:=0;
      for i:=1 to 2*n do
        begin
        nowmin:=maxlongint;
        for j:=1 to n do
          for k:=1 to 2 do
            if not v[k,j] then
              if d[k,j]<nowmin then
                begin
                nowmin:=d[k,j];
                minj:=j;mink:=k;
              end;
    
        if nowmin=maxlongint then break;
        v[mink,minj]:=true;
        u:=b[minj];
        while u<>0 do
          begin
          y:=a[u];
          u:=y.next;
          if nowmin+y.w<d[1,y.e] then
            begin
            d[2,y.e]:=d[1,y.e];
            d[1,y.e]:=nowmin+y.w;
          end else
          if nowmin+y.w<d[2,y.e] then
            d[2,y.e]:=nowmin+y.w;
        end;
      end;
      writeln(d[2,n]);
      readln;
    end.
    
  • 相关阅读:
    虚拟机黑屏
    ngnix随笔三
    ngnix随笔二
    ngnix随笔一
    HTML(初级)笔记
    学习Java注解
    常用工具类与commons 类库
    SpringBoot缓存使用
    LeetCode:98.验证二叉搜索树
    剑指Offer:面试题07.重建二叉树
  • 原文地址:https://www.cnblogs.com/htfy/p/3082466.html
Copyright © 2011-2022 走看看