题目: A 国有 n 座城市,n−1 条双向道路将这些城市连接了起来,任何两个城市都可以通过道路互通. 某日,A 国爆发了丧尸危机,所有的幸存者现在都聚集到了 A 国的首都(首都是编号为 1 的城市).而其它城市的丧尸会时不时地向首都发起进攻. 为了抵御丧尸的攻击,幸存者在 A 国的每座城市都修建了防御工事.编号为 i 的城市,其防御工事强度为 di. 当一只丧尸决定进攻首都时,它会从某城市 u(u≠1) 沿经过道路数量最少的路径前往首都.沿途,这只丧尸会试图突破当地的防御工事. 对于某座防御工
Silver Cow Party Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 12674 Accepted: 5651 Description One cow from each of N farms (1 ≤ N ≤ 1000) conveniently numbered 1..N is going to attend the big cow party to be held at farm #X (1 ≤ X
题目大意:给你一个有向图,并给你三个数s.t 和 k ,让你求从点 s 到 点 t 的第 k 短的路径.如果第 k 短路不存在,则输出“-1” ,否则,输出第 k 短路的长度. 解题思路:这道题是一道简单的启发式搜索题目.而启发式搜索中A星算法是比较好理解的.A星算法中需要用到一个估价函数:f(n) = g(n)+ h(n).其中,g(n)是当前量,h(n)是估计量,两者之和 f(n) 是估计值 .在这道题中,g(n)是从起点 s 到 点n 的已走距离,h(n)是从点n 到终点 t 的最短距离(
工具类 AStarUtil.java import java.util.*; import java.util.stream.Collectors; /** * A星算法工具类 */ public class AStarUtil { private int[][] NODES; public AStarUtil(int[][] NODES) { this.NODES = NODES; } public AStarUtil() { } public static final int STEP =