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