Dijkstra学习笔记
程序员文章站
2022-06-16 21:41:32
~~暂时空白....~~ 没有前置,我用vector存图 cpp //存储 struct edge{ int w,to;//w是权值,to是连接到的下一条边 }; vector e; //连边 ... for(int i=1;i ......
暂时空白....
没有前置,我用vector存图
//存储 struct edge{ int w,to;//w是权值,to是连接到的下一条边 }; vector<edge> e; //连边 ... for(int i=1;i<=m;i++) { int to,s,w; scanf("%d%d%d",&s,&to,&w); edge tmp; tmp.to=to,tmp.w=w; e[s].push_back(tmp);//有向图 tmp.to=s; e[to].push_back(tmp);//无向图 }
每一次用选取当前数组中dis中存储的最小值的点,如果没有访问过,就可以访问,
... for(int i=1;i<=n;i++) { int min=0x3f,now; for(int j=1;j<=n;j++) { if(vis[j]==0&&dis[j]<min) { min=dis[j]; now=j; } } vis[now]=1;
并更新周围的点
for(int j=0;j<e[now].size();j++) { dis[e[now][j].to]=max(dis[now]+e[now][j].w,dis[e[now][j].to]); if(dis[now]+e[now][j].w<dis[e[now][j].to]) { dis[e[now][j].to]=dis[now]+e[now][j].w; } } }
应该写对了吧....因为我爆掉了qwq,而且似乎是re?
上一篇: 分布式架构(太极八卦图篇)
推荐阅读
-
Java描述数据结构学习之链表的增删改查详解
-
深入学习Spring Boot排查 @Transactional 引起的 NullPointerException问题
-
深入学习Android中的Intent
-
CDR学习者必看:CDR实用技巧及常用问题合集
-
戴尔Dell N4110笔记本怎么拆机清灰?
-
戴尔vostro15 5568笔记本怎么样? 戴尔笔记本vostro15详细测评
-
三星910S3L K04笔记本怎么样? 三星910S3L笔记本详细测评
-
华硕飞行堡垒FX 4200笔记本性能如何? 华硕fx4200详细评测
-
内外兼修霸气十足 全新雷神911-S1G游戏笔记本电脑图赏
-
宏基aspire e1 471g笔记本屏幕拆解过程图解