迪杰斯特拉是求最短路径
这个是求最长的,把松弛的地方修改下就可以了
网上说这个还可以用拓扑排序做,我写了几遍都没有过
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.PriorityQueue;
import java.util.StringTokenizer;
public class Main {
static Node1807D[] nodes;
public static void main(String[] args) throws Exception{
BufferedReader reader=new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st=new StringTokenizer(reader.readLine());
int N=Integer.parseInt(st.nextToken());//点的个数
int M=Integer.parseInt(st.nextToken());//边的个数
nodes=new Node1807D[N+1];
for (int i = 0; i <nodes.length ; i++) {
nodes[i]=new Node1807D(i);
}
for (int i = 1; i <=M; i++) {
st=new StringTokenizer(reader.readLine());
int from=Integer.parseInt(st.nextToken());
int to=Integer.parseInt(st.nextToken());

这篇博客探讨了如何将迪杰斯特拉算法应用于寻找图中的最长路径问题。作者指出,只需稍作修改即可从求最短路径转换为求最长路径。此外,还提及尝试使用拓扑排序解决该问题,但提供的拓扑排序代码未能通过测试。
最低0.47元/天 解锁文章
9917

被折叠的 条评论
为什么被折叠?



