题目链接 题意 给出n个点m条有向边,源点s,汇点t,k.问s到t的第k短路的路径长度是多少,不存在输出-1. 思路 A*算法是启发式搜索,通过一个估价函数 f(p) = g(p) + h(p) ,其中源点到p的距离是g(p),从p到汇点的距离是h(p),从源点经过p点到达汇点的长度f(p),来决定搜索的方向. 因此反向建图,从汇点出发处理出h数组,然后就可以用A*来做了.用优先队列,每次出队的点为t的话,就cnt++,当cnt==k的时候,就说明是第k短路了. 注意一开始s==t的情况,因为要…