Dijkstra用于计算某一结点到其他所有节点的最短路
适用于边权为正的有向图或者无向图
将图中点分为两部分,一部分是已经求出最短路的点S,一部分是未求出最短路的点U,开始时S={0}, U={剩下的点}, 用d[i]表示点i到点0的距离,从U中找到d[i]最小的点m, 加入S中, 更新U中与m相连的点的d[i](松弛操作),直到图中所有的点都加入S中。
memset(vis, 0 sizeof(vis));//vis数组标记点是否被访问过
memset(d, 0x3f, sizeof(d));
d[0] = 0;
for(int i=0; i<n; i++)
{
int x, m = INF;
for(int