Implementation:Bellman-ford
2024-10-06 08:05:54
单源最短路径算法Bellman-ford练习,可以处理有负边的情况(也可以在存在负圈时及时终止)
#include <iostream>
#include <cstdlib>
#include <vector> using namespace std; class Edge {
public:
int from;
int to;
int cost;
}; int main() { int graph[][] = {
, , , , ,
, , ,, ,
, , , , ,
, , , , ,
, , , , ,
};
Edge edge; vector<Edge> E;
vector<int> vd(, INT_MAX);
for (int i=; i<; i++) {
for (int j=; j<; j++) {
edge.cost = graph[i][j];
if (edge.cost == ) continue;
edge.to = j;
edge.from= i;
E.push_back(edge);
}
} vd[] = ; // start point bool update = true;
while (update) {
update = false;
for (int i=; i<E.size(); i++) {
Edge& e = E[i];
if (vd[e.from] != INT_MAX && vd[e.to] > vd[e.from] + e.cost) {
update = true;
vd[e.to] = vd[e.from] + e.cost;
}
}
} for (int i=; i<; i++)
cout<<i<<":"<<vd[i]<<endl;
system("pause");
return ;
}
最新文章
- eclipse中mybatis_generator插件的安装与使用
- 定时器的fireDate指的是触发时间
- study topics
- Xcode7推出的新优惠:免证书测试
- javascript 汉字拼音排序
- 【翻译】光速React – Vixlet
- java 调用webservice接口
- Java数组排序基础算法,二维数组,排序时间计算,随机数产生
- 解决ajax跨域访问sessionid不一致问题
- MDK5 设置project targents?如何实现的有知道的请共享一下谢谢感激不尽!!!!
- Android Studio升级到3.1.4后打开旧项目警告:The `android.dexOptions.incremental` property is deprecated and it has no effect on the build process.
- PHP中生成UUID
- spring整合dubbo[单机版]
- jQuery添加和删除元素
- 美秒快报 移动端API接口后台制作总结
- CEC2017 benchmark function调用接口
- Java:HttpClient篇,Cookie概述,及其在HttpClient4.2中的应用
- ROIPooing
- 【ARDUINO】HC-05蓝牙不配对问题
- SVN使用—工作模式及运行原理以及优缺点对比
热门文章
- [Dart]语法基础
- Nginx+Tomcat搭建负载均衡
- 【learning】微信跳一跳辅助c++详解 轻松上万 【下】
- js实现双向链表, 双向链表需要增加一个previous属性
- VSTO学习(四)——自定义Excel UI 转载
- c#调用R
- 剑指offer三十六之两个链表的第一个公共结点
- Storm累计求和Demo并且在集群上运行
- 前端必备:FastStoneCapture 和 Licecap &;&;&; mingw c++ 编译执行
- android的几种“通知”方式简单实现(Notification&;NotificationManager)