码迷,mamicode.com
首页 > 其他好文 > 详细

ecnu 1817 Shortest Path

时间:2018-05-15 19:47:18      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:als   []   spl   false   color   div   split   style   end   

def dijkstra(N,lowdis,dis):
    vis=[]
    for i in range(0,N): #有N个节点编号为0~N-1
        lowdis.append(dis[0][i])
        vis.append(False)
    vis[0]=True
    for i in range(1,N):
        mind=float(inf)
        minn=-1 
        for j in range(0,N):
            if not vis[j]:
                if lowdis[j]<mind:
                    mind=lowdis[j]
                    minn=j
        if mind<float(inf):
            vis[minn]=True
            for j in range(0,N):
                if not vis[j]:
                    if lowdis[j]>mind+dis[minn][j]:
                        lowdis[j]=mind+dis[minn][j]
        else:
            return -1
    return lowdis[N-1]

n,m=map(int,input().split())

lowdis=[]
dis=[]
line=[]

for i in range(0,n):
    line.append(float(inf))
for i in range(0,n):
    dis.append(line[:])
    dis[i][i]=0
for i in range(0,m):
    a,b,c=map(int,input().split())
    if dis[a-1][b-1]>c:
        dis[a-1][b-1]=c
    
print(dijkstra(n,lowdis,dis))

 

ecnu 1817 Shortest Path

标签:als   []   spl   false   color   div   split   style   end   

原文地址:https://www.cnblogs.com/TAMING/p/9042399.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!