HDU1874(Dijstra算法)
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;
const int inf=0x3f3f3f3f;
const int maxx=1002;
int p[maxx];//标记前驱节点
int dist[maxx];//标记源点到i之间的最短距离
int e[maxx][maxx];//记录路径
int vis[maxx];//标记该点是否被走过
int n,m;
void Dijstra(int u){//核心算法dist[u]=0;for(int i=0;i<n;i++){if(i!=u){dist[i]=e[u][i];p[i]=u;}}vis[u]=1;for(int i=0;i<n;i++){int temp=inf;int t=u;for(int j=0;j<n;j++){if(!vis[j]&&dist[j]<temp){temp=dist[j];t=j;}}if(t==u){break;}vis[t]=1;for(int j=0;j<n;j++){if(e[t][j]<inf){if(!vis[j]&&dist[j]>dist[t]+e[t][j]){dist[j]=dist[t]+e[t][j];p[j]=t;}}}}
}
int main(){while(scanf("%d %d",&n,&m)!=EOF){memset(p,0,sizeof(p));memset(vis,0,sizeof(vis));for(int i=0;i<=n;i++){//初始化dist[i]=inf;for(int j=0;j<=n;j++){if(i==j){e[i][j]=0;}else{e[i][j]=inf;}}}for(int i=0;i<m;i++){int a,b,cost;cin>>a>>b>>cost;e[a][b]=e[a][b]>cost?cost:e[a][b];//如果存在多条路径,选择最短的路径e[b][a]=e[a][b];}int x,y;scanf("%d %d",&x,&y);//输出起点和终点Dijstra(x);if(dist[y]<inf){//判断是否存在路径cout<<dist[y]<<endl;}else{cout<<-1<<endl; }}return 0;
}
HDU1874(Dijstra算法)相关推荐
- poj2387(Dijstra算法)
这道题就是模版题,直接上代码: Dijstra算法 #include<iostream> #include<algorithm> #include<cmath> # ...
- Dijstra算法-------为了纪念,等以后看的时候方便
杭电problem2066 Time Limit : 1000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Total ...
- HDU2112(Flody算法和Dijstra算法)
采用Flody算法时一定要注意那个cnt的下标,我也是在这里卡了一定的时间,可能是我的经验还远远不够. 方法一: #include<iostream> #include<algori ...
- HDU2544(Dijstra算法)
#include<iostream> #include<algorithm> #include<cstring> #include<cmath> #in ...
- HDU2066(Dijstra算法)
#include<iostream> #include<algorithm> #include<cstring> #include<cmath> #in ...
- HDU3970(Dijstra算法)
#include<iostream> #include<algorithm> #include<cstring> #include<cmath> usi ...
- Dijstra算法求最短路径
参考博客:http://blog.51cto.com/ahalei/1387799 与Floyd-Warshall算法一样这里仍然使用二维数组e来存储顶点之间边的关系,初始值如下. ...
- [hiho 23]单源最短路-Dijstra算法
题目描述 维护一个集合,集合中的元素与点u的最短距离已经确定,求出集合内元素所能到达的点到点u的距离,取最短的距离对应的点加入集合直到集合包含点v. 每次更新距离只与新加入集合的点有关. #inclu ...
- java迪杰斯特拉算法实例,Java 图的最短路径dijstra(迪杰斯特拉)算法和拓扑排序
一.图的最短路径从某顶点出发,沿图的边到达另一顶点所经过的路径中,各边上权值之和最小的一条路径叫做最短路径 图的最短路径有许多重要的应用. 例如:上图中v0-v8有9个点,可以看做不同的地点,现在要规 ...
最新文章
- 细说 iOS 消息推送
- 使用JMeter录制手机App脚本
- 数据中心业务价值永续的密码——施耐德电气全生命周期服务
- 字符输出流的续写和换行
- C语言无符号数运算问题
- 【PA2014】【BZOJ3709】Bohater(贪心,排序)
- 深度神经网络 轻量化_正则化对深度神经网络的影响
- 初学者怎样看懂python代码_初学者怎样看懂代码?
- ubnt ER-4添加PON stick模块替换光猫实战
- Gazbo下的无人车集群导航仿真
- 网利友联CEO王卫平受邀坐客飞官七直播间
- MP3参数,格式,术语有关一切内容详解。
- Codeforces Gym 100015 简要题解
- Elasticsearch(六)了解全文搜索
- 教授专栏13 | 陈雷:数据科学助力AI落地
- ASP.NET Core 中简单Session登录校验
- Ceph 线程池与工作队列
- Spring、Struts2+Spring+Hibernate整合步骤
- 4.4 基金排行数据(Python)
- 转:资本2010《CCTV财经频道中国证券市场投资策略报告》发布