问题: n个节点,m个相互连接的边,边为a【m】,求最短路径
解答:
先跟点编号i,跟边编号j
设一个int b[x] (x为结点个数),用来记录结点是否使用过。
用一个int c[y] (y为边的数目)初始化为0,用来标记边的连接,以边的选择顺序编号,当边相连时,标号小的标记为新的连通树边的标号。以标记相同,表示这些边相连。 当新边加入时,如果其连接的两个节点所连边的标号相同,这表明这个边加上的话,就形成回路了,并做相应的处理。(这个算法应该没有回路,当一条边连接进来,还可以 判断,该边两端点是否多被标记过,如果是,则此边不符合要求,连接进来会形成回路,否则符合要求)
当所有点b[x]标记过,并且连接起来了的边,c[j]标记达到最小,则连边结束。
现在遍历全图,将c[j] = 1对应的的a[j]全部加起来