算法原理
四种算法原理请参考B站UP主麦克老师讲算法
题目——蓝桥王国:
小明是蓝桥王国的王子,今天是他登基之日。 在即将成为国王之前,老国王给他出了道题,他想要考验小明是否有能力管理国家。 题目的内容如下: 蓝桥王国一共有 NN 个建筑和 MM 条单向道路,每条道路都连接着两个建筑,每个建筑都有自己编号,分别为 1∼N1∼N 。(其中皇宫的编号为 11) 国王想让小明回答从皇宫到每个建筑的最短路径是多少,但紧张的小明此时已经无法思考,请你编写程序帮助小明回答国王的考核。 输入描述 输入第一行包含三个正整数 N,MN,M。 第 22 到 M+1M+1 行每行包含三个正整数 u,v,wu,v,w,表示 u→vu→v 之间存在一条距离为 ww 的路。 1≤N≤3×1051≤N≤3×105,1≤m≤1061≤m≤106,1≤ui,vi≤N1≤ui,vi≤N,0≤wi≤1090≤wi≤109。 输出描述 输出仅一行,共 NN 个数,分别表示从皇宫到编号为 1∼N1∼N 建筑的最短距离,两两之间用空格隔开。(如果无法到达则输出 −1−1) 3 3 1 2 1 1 3 5 2 3 2 0 1 3
Floyed算法
当问题要求任意两点之间的距离的话使用Floyed算法
n, m = map(int, input().split())
# 初始化INF的值
I