博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
无环有向图最长路径
阅读量:4215 次
发布时间:2019-05-26

本文共 1610 字,大约阅读时间需要 5 分钟。

1、把dist 初始为负无穷

2、松弛判断条件改为 dist[v] < dist[u] + w;

import java.util.ArrayList;import java.util.Scanner;import java.util.Stack;import Graph.HasCycle;import javafx.scene.effect.Light.Distant;public class TopDij {	static boolean[]visit;	static boolean[]onStack;	static Stack
stack; static int n, m; static boolean hasCycle = false; static int[]dis; static int INF = 99999999; static ArrayList
[]adj; public static void main(String[] args) { Scanner in = new Scanner(System.in); n = in.nextInt(); m = in.nextInt(); visit = new boolean[n+1]; adj = new ArrayList[n+1]; stack = new Stack<>(); dis = new int[n+1]; onStack = new boolean[n+1]; for(int i = 1; i <= n; i++ ) { adj[i] = new ArrayList<>(); } for(int i = 0; i < m; i++ ) { int from = in.nextInt(); int to = in.nextInt(); int w = in.nextInt(); adj[from].add(new EdgeS(from, to, w)); } bfs(1); if(!hasCycle) { shortPath(1); System.out.println(dis[3]); } else { System.out.println("hasCycle"); } } public static void shortPath(int s) { for(int i = 1; i <= n; i++ ) { dis[i] = -INF; } dis[s] = 0; while(!stack.isEmpty()) { int cur = stack.pop(); for(EdgeS e: adj[cur]) { if(dis[e.to] < dis[cur] + e.w) { dis[e.to] = dis[cur] + e.w; } } } } public static void bfs(int cur) { visit[cur] = true; onStack[cur] = true; for(EdgeS e:adj[cur]) { if(!visit[e.to]) { bfs(e.to); } else if(onStack[e.to]){ hasCycle = true; return; } } onStack[cur] = false; stack.push(cur); }}class EdgeS{ int from, to, w; public EdgeS(int f, int t, int w) { from = f; to = t; this.w = w; }}

转载地址:http://xlimi.baihongyu.com/

你可能感兴趣的文章
vld 使用
查看>>
MAC下安装多版本JDK和切换几种方式
查看>>
java.util.concurrent详解
查看>>
java事务大总结(一) 先理解数据库的事务以mysql为例
查看>>
java事务大总结(二) 理解JDBC事务的工作机制
查看>>
java事务大总结(三) 理解学习 JTA(Java Transaction API)
查看>>
java事务大总结(四)spring事务相关大总结
查看>>
驴妈妈管理的一点经验总结
查看>>
IOS开发学习的好资料大搜藏
查看>>
SSH的认证终结(无需密码的git操作或者ssh链接无需密码)
查看>>
Jetty 的工作原理以及与 Tomcat 的比较
查看>>
ssh-keygen的使用方法 注意权限问题
查看>>
zookeeper的server的集群配置实例[张振华-Jack]
查看>>
【屌丝程序的口才逆袭演讲稿50篇】第一篇:互联网时代U盘化生存方式 【张振华.Jack】
查看>>
CentOS6.4配置Hadoop-2.6.0集群配置安装指南(经过实战演练)【张振华.Jack】
查看>>
【屌丝程序的口才逆袭演讲稿50篇】第二篇:专注的力量 [张振华.Jack]
查看>>
【屌丝程序的口才逆袭演讲稿50篇】第三篇:我的舍与得的2014[张振华.Jack]
查看>>
【屌丝程序的口才逆袭演讲稿50篇】第五篇:不要给自己找任何借口【张振华.Jack】
查看>>
【屌丝程序的口才逆袭演讲稿50篇】第七篇:请留意我们身边的风景 【张振华.Jack】
查看>>
【屌丝程序的口才逆袭演讲稿50篇】第八篇:坚持的力量 【张振华.Jack】
查看>>