poj2387(Dijstra算法)
这道题就是模版题,直接上代码:
Dijstra算法
#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<vector>
#include<queue>
#include<cstdio>
using namespace std;
typedef long long ll;
const int maxx=1005;
const int inf=0x3f3f3f3f;
int dist[maxx];
int pre[maxx];
int vis[maxx];
int e[maxx][maxx];
int n,m,k;
void Dijstra(int n,int u){for(int i=1;i<=n;i++){dist[i]=e[u][i];pre[i]=u;}dist[u]=0;vis[u]=1;for(int i=1;i<=n;i++){int temp=inf;int t=u;for(int j=1;j<=n;j++){if(!vis[j]&&dist[j]<temp){temp=dist[j];t=j;}}if(t==u)break;vis[t]=1;for(int j=1;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];pre[j]=t;}}}}
}
int main(){int t;while(scanf("%d %d",&n,&m)!=EOF){memset(vis,0,sizeof(vis));memset(pre,0,sizeof(pre));memset(vis,0,sizeof(vis));for(int i=1;i<=m;i++){dist[i]=inf;for(int j=1;j<=m;j++){e[i][j]=inf;}}for(int i=1;i<=n;i++){int a,b,cost;scanf("%d %d %d",&a,&b,&cost);if(e[a][b]>cost){e[a][b]=e[b][a]=cost;}}Dijstra(m,m);cout<<dist[1]<<endl;}return 0;
}
poj2387(Dijstra算法)相关推荐
- Dijstra算法-------为了纪念,等以后看的时候方便
杭电problem2066 Time Limit : 1000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Total ...
- HDU1874(Dijstra算法)
#include<iostream> #include<algorithm> #include<cstring> #include<cmath> usi ...
- 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 ...
- poj2387(SPFA算法)
1.建⽴⼀个队列,初始时队列⾥只有起始点,再建⽴⼀个表格记录起始点到所有点的最短路径(该表格的初始值要赋为极⼤值,该点到他本⾝的路径赋为 无穷大).然后执⾏松弛操作,⽤队列⾥有的点作为起始点去刷新到所 ...
最新文章
- java soa例子_哪位大牛能举个实例讲下SOA与传统架构的区别?
- IDEA @Override is not allowed when implementing interface method(转载)
- 敏捷测试与普通测试的区别
- 【深度学习笔记】多层感知机,非权值共享型卷积神经网络,权值共享型卷积神经网络之间的关系
- C++面向对象程序设计实践——任务与指导书(1)
- java安装下载步骤_java下载安装教程
- 【原创】AE套用模板教程
- 型机器人同人本子_唯美的人×机器人漫画《純情愛玩生化女友》
- 2022年了,Windows Vista还能用吗?
- 注册机偷懒写法1、之直接扣代码
- Pumpkin Raising Walk Through
- Spring Boot搭建Web服务器,实现用户注册登录功能
- 用了接口还有必要用抽象类吗?
- C语言函数:toupper
- css网站结课设计,毕业设计(论文)-《DIV+CSS》课程网站的开发.doc
- 电子数据取证之网站分析和重构基础
- Apache ab压力测试说明
- JSP页面%@ ...%是 什么意思
- STM32F103之系统架构
- linux 没有jstack_linux jstack安装
热门文章
- pycharm中的terminal解释器和project 解释器不统一问题
- 【网络协议】TCP分段与IP分片
- VUE的data数据对象
- Tomcat版本不同,功能区别也是很大!
- OPPOr7sm恢复出厂设置一直卡在开机界面
- 基于OpenCV的数字识别系统
- 程序员必须掌握哪些算法?
- 跨模态学习在三维语义分割领域适应中的应用
- phpmyadmin底部出现提示“The configuration file now needs a secret passphrase (blowfish_secret). ”...
- 模拟PLC 的圆弧插补方式在VC中绘制圆弧