最短路——Bellman-Ford
2015-10-21 10:46
295 查看
在存在负边时,当最短路存在时可以求出来,不存在时可以检测出来。
const int maxn = 110; const int max_int = ~(1<<31); const int min_int = (1<<31); int u[maxn], v[maxn], w[maxn], dist[maxn]; //[0,max_int] int bellmanford(int s){ for(int i = 0; i < n; ++i){ dist[i] = max_int; } dust[s] = 0; for(int k = 1; k < n; ++k){ for(int i = 0; i < m; ++i){ int x = u[i], y = v[i]; if(dist[x] < max_int){ dist[y] = min(dist[y], dist[x] + w[i]); } } } for(int i = 0; i < m; ++i){ int x = u[i], y = v[i]; if(dist[x] < max_int && dist[y] < dist[x] + w[i]){ return -1; } } return 0; }
相关文章推荐
- Cucumber java + Webdriver (2) 开始编写第一个Test
- C++的一些模块学习!
- 旧文备份:简单CANOpen 协议说明
- android日期处理工具类
- 关于闭包之我见
- 2015十佳IDC评选火热:万网西数得票数超千票
- java开发webservice的几种方式
- Thread的中断机制(interrupt)
- iOS入门学习(设置应用图标和启动页)
- C++学习笔记5 - 循环与关系表达式
- 系统提示音的使用
- CAS环境搭建
- 求一条直线通过的最大点数
- cxf发布webservice,使用maven工程
- Logback使用详解
- java类的设计原则
- VIM 常用快捷键
- [Leetcode]ZigZag Conversion 笨方法
- ActiveMQ消息发送
- dos下Java命令环境变量失效