class Dijkstra():
def __init__(self,graph,points):
self.graph=graph
self.points=points
self.Node=[False]*self.points
self.Distance=[float("inf")]*self.points
def Minpath(self,s):
self.Distance[s]=0
for i in range(self.points):
for point in self.graph:
self.Node[point[0]] = True
if self.Distance[point[1]] > point[2]:
self.Distance[point[1]] = min(self.Distance[point[1]], point[2] + self.Distance[point[0]])
return self.Distance
if __name__ == '__main__':
graph=[]
points=int(input("请输入图的点数:"))
avris = int(input("请输入图的边数:"))
start_point=int(input("请输入开始的起点:"))
for i in range(avris):
stides = list(map(int, input(("请输入第{}条边两点和权重:").format(i+1)).split(' ')))
graph.append(stides)
D=Dijkstra(graph,points)
print(D.Minpath(start_point))