Dijkstra解法:
 #include <stdio.h>
#include <iostream>
#include <cstring>
#include <vector>
#include <algorithm>
#include <sstream> #define INF 1000000000 using namespace std;
int N, M;
int dist[],g[][];
int vis[]; void dijkstra(int start)
{
for(int i=;i<=N;i++)
dist[i]=INF;
dist[start] = ;
memset(vis,,sizeof(vis)); while()
{
int mark=-,mindis=INF;
for(int i=;i<=N;i++)
{
if(!vis[i]&&dist[i]<mindis)
{
mindis=dist[i];
mark=i;
}
}
if(mindis == INF) // 找不到未收录的节点,则说明算法结束,退出
break;
vis[mark]=; for(int i=;i<=N;i++)
{
if(!vis[i])
{
dist[i]=min(dist[i],dist[mark]+g[mark][i]);
}
}
}
} int main()
{
while(cin >> N >> M)
{
if(N == && M == )
break; for(int i = ; i <= N; ++i)
for(int j = ; j <= N; ++j)
{
if(i == j)
g[i][j] = ;
else
g[i][j] = INF;
} for(int i = ; i <= M; ++i)
{
int a,b,c;
cin >> a >> b >> c;
g[a][b] = g[b][a] = c;
} dijkstra();
cout << dist[N] << endl; } return ;
}

Floyd解法:

 #include <stdio.h>
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <sstream> using namespace std; int dis[][]; int main()
{
int N, M;
while(cin >> N >> M)
{
if(N == && M == )
break; for(int i = ; i <= N; ++i)
{
for(int j = ; j <= N; ++j)
{
if(i == j)
dis[i][j] = ;
else
dis[i][j] = ;
}
} int a, b, c;
for(int i = ; i <= M; ++i)
{
cin >> a >> b >> c;
if(dis[a][b] > c)
dis[a][b] = dis[b][a] = c; } for(int k = ; k <= N; ++k)
for(int i = ; i <= N; ++i)
for(int j = ; j <= N; ++j)
{
if(dis[i][j] > dis[i][k] + dis[k][j])
dis[i][j] = dis[i][k] + dis[k][j];
} cout << dis[][N] << endl;
} return ;
}

最新文章

  1. 攻城狮在路上(壹) Hibernate(十二)--- Hibernate的检索策略
  2. json 入门(1)
  3. 李洪强漫谈iOS开发[C语言-039]-剪刀石头布
  4. 《Python基础教程(第二版)》学习笔记 -&gt; 第七章 更加抽象
  5. hadoop 常用配置项
  6. [翻译]Orchard文档-命令行基架
  7. Cannot access empty property
  8. SQL Server 2008 R2 性能计数器详细列表(二)
  9. nopCommerce 3.9 大波浪系列 之 可退款的支付宝插件(上)
  10. 详解最大似然估计(MLE)、最大后验概率估计(MAP),以及贝叶斯公式的理解
  11. Tensorflow实战系列之二:
  12. Ubuntu18.04终端设置为zsh后的问题记录
  13. Zookeeper应用之——栅栏(barrier)
  14. idea js改来改去无效问题的解决
  15. pc端复制方法
  16. Spark记录-Scala异常处理与文件I/O
  17. Bootstrap Modal多个弹出层顺序
  18. idea tomcat debug 失效
  19. MongoDB入门---简介
  20. 文件格式转换神器-pandoc

热门文章

  1. 05-python 学习第五天,简易聊天工具(shelve模块练习)
  2. CAS去掉HTTPS认证
  3. windows server 文件夹和搜索选项被禁用了
  4. HBase 面向列的存储
  5. 数据库顶会VLDB论文解读:阿里数据库智能参数优化的创新与实践
  6. js身份证号码验证(小程序版)
  7. Java 普通代码块,构造代码块,静态代码块
  8. java 并发 详解
  9. Django项目: 5.新闻主页
  10. jquery校验是否为空