定义全局变量,包括结构体 nodenodenode 表示节点,结构体 EdgeEdgeEdge 表示图的边,数组 hhh 表示图的邻接表,数组 eee 存储边的信息,数组 vvv 标记节点是否被访问过,数组 ddd 存储起始点到各个点的最短距离。
定义函数 addaddadd _ edgeedgeedge 用于添加边到邻接表。
定义函数 dijkstradijkstradijkstra 实现 DijkstraDijkstraDijkstra 算法,初始化距离数组,使用优先队列存储节点和距离信息,不断更新最短距离。
在主函数中,读取输入的点的个数 nnn 、有向边的个数 mmm 、出发点的编号 sss 。
读取 mmm 行边的信息,调用 addaddadd _ edgeedgeedge 添加边到邻接表。
调用 dijkstradijkstradijkstra 计算最短路径。
输出最短路径长度,若不能到达则输出 −1-1−1 。