Java教程

test

本文主要是介绍test,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

test

我们来测试一下
这里是题目

点击查看代码
'''
邻接矩阵
'''
n,m = map(int,input().split());
INF = float('inf');

g = [[INF] * (n + 1) for _ in range(n +1)];
dist = [INF] * (n + 1);
st = [0] * (n + 1);

def dijkstra():
    global n,INF;
    
    dist[1] = 0;
    for _ in range(n): #n次迭代确定n个最短路
        #从未标记的点中找一个最短的节点(步骤2)
        x = -1;
        for j in range(1,n + 1): 
            if st[j] == 0 and (x == -1 or dist[x] > dist[j]):x = j;
        #利用x来更新其他边 利用更新更新最短路(步骤3) 
        for y in range(1,n + 1): 
            dist[y] = min(dist[y],dist[x] + g[x][y]);
            
        st[x] = 1;
    if dist[n] == INF:return -1;
    else:return dist[n];
    
    
def main():
    for _ in range(m):
        x,y,w = map(int,input().split());
        g[x][y] = min(g[x][y],w);
    
    print(dijkstra());
main();
这篇关于test的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!