单源最短路径算法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 ;
}

最新文章

  1. eclipse中mybatis_generator插件的安装与使用
  2. 定时器的fireDate指的是触发时间
  3. study topics
  4. Xcode7推出的新优惠:免证书测试
  5. javascript 汉字拼音排序
  6. 【翻译】光速React – Vixlet
  7. java 调用webservice接口
  8. Java数组排序基础算法,二维数组,排序时间计算,随机数产生
  9. 解决ajax跨域访问sessionid不一致问题
  10. MDK5 设置project targents?如何实现的有知道的请共享一下谢谢感激不尽!!!!
  11. Android Studio升级到3.1.4后打开旧项目警告:The `android.dexOptions.incremental` property is deprecated and it has no effect on the build process.
  12. PHP中生成UUID
  13. spring整合dubbo[单机版]
  14. jQuery添加和删除元素
  15. 美秒快报 移动端API接口后台制作总结
  16. CEC2017 benchmark function调用接口
  17. Java:HttpClient篇,Cookie概述,及其在HttpClient4.2中的应用
  18. ROIPooing
  19. 【ARDUINO】HC-05蓝牙不配对问题
  20. SVN使用—工作模式及运行原理以及优缺点对比

热门文章

  1. [Dart]语法基础
  2. Nginx+Tomcat搭建负载均衡
  3. 【learning】微信跳一跳辅助c++详解 轻松上万 【下】
  4. js实现双向链表, 双向链表需要增加一个previous属性
  5. VSTO学习(四)——自定义Excel UI 转载
  6. c#调用R
  7. 剑指offer三十六之两个链表的第一个公共结点
  8. Storm累计求和Demo并且在集群上运行
  9. 前端必备:FastStoneCapture 和 Licecap &amp;&amp;&amp; mingw c++ 编译执行
  10. android的几种“通知”方式简单实现(Notification&amp;NotificationManager)