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