题目

给定n个点的带权有向图,求从1到n的路径中边权之和最小的路径。

dijkstra实现方法

用dist[i]表示i这个点到原点的最短距离,一开始初始化为无穷大,然后将原点设为0。

用ok[i]表示i这个点是否已经确定了最短路,一开始将原点设为已经找到。

然后每一次枚举每一个点,找到与原点最近且没有找到最短路的点,将它标记为已经找到最短路,再用这个点去更新其他的点,最终即可求得最短路。

代码

 #include<iostream>
#include<cstring>
using namespace std;
int n,m;
int dist[];
bool ok[];
int ma[][];
int main(){
cin>>n>>m;
memset(ma,0x3f,sizeof(ma));//先设置为无穷大
for(int i=;i<=m;i++){ //读入
int a,b,c;
cin>>a>>b>>c;
ma[a][b]=c;
ma[b][a]=c;
}
memset(dist,0x3f,sizeof(dist));//将到每一个点的最短路设置为无穷大
dist[]=;
for(int i=;i<=n;i++){ //主要步骤
int mmm,minn=0x3f3f3f;
for(int j=;j<=n;j++){
if(!ok[j]&&dist[j]<minn){
minn=dist[j];
mmm=j;
}
}
ok[mmm]=;
for(int k=;k<=n;k++){
dist[k]=min(dist[k],dist[mmm]+ma[mmm][k]);
}
}
cout<<dist[n];
return ;
}

最新文章

  1. 在Qt Creator 和在 vs2012 里添加信号和槽
  2. 【转】根据中国气象局提供的API接口实现天气查询
  3. BZOJ3218 UOJ#77 A+B Problem(最小割+主席树)
  4. DIB位图文件的格式、读取、保存和显示(转载)
  5. Beaglebone Black&ndash;GPIO 高低电平控制 LED 灯
  6. Android 锁屏软件MemoryDebris测试报告
  7. 小试牛刀-嘿嘿,创建job了
  8. Qt 内存泄漏测试
  9. mybatis配置文件xxxx.xml中缺失返回类型的后果A query was run and no Result Maps were found
  10. C# winform 实现 qq 在屏幕边缘 自动隐藏 鼠标移过去 移上去 又自动显示
  11. 跑github上的Symfony项目遇到的问题2
  12. (二)Hololens Unity 开发入门 之 Hello HoloLens~
  13. VxWorks信号量问题
  14. DFS例题
  15. php 中 opendir() readdir() scandir()
  16. JAVA 泛型的参数的传递示意图
  17. 【轻松前端之旅】&lt;!DOCTYPE&gt;标签
  18. 41.App 框架的搭建思路以及代码的规范
  19. JavaScript运算符:递增递减运算符前置和后置的区别
  20. There is no getter for property named &#39;notice&#39; in &#39;class com.game.domain.Notices&#39;

热门文章

  1. javascript Math取整&amp;获取随机数
  2. 总结const、readonly、static三者的区别【收藏、转载】20190614
  3. 2018-8-10-WPF-控件继承树
  4. Spring Data Elasticsearch 用户指南
  5. linux--基础知识2
  6. bzoj1430 小猴打架 prufer 序列
  7. mysql 5.7以上版本下载及安装
  8. Java技术中如何使用keepalived实现双机热备
  9. 学习日记3、投机取巧使两个表的数据同时在一个treeGrid中显示
  10. 【JavaScript】DOM之事件