HDU 1874 畅通project续 最短路径入门(dijkstra)
如今,已知起点和终点,请你计算出要从起点到终点。最短须要行走多少距离。
每组数据第一行包括两个正整数N和M(0<N<200,0<M<1000),分别代表现有城镇的数目和已修建的道路的数目。
城镇分别以0~N-1编号。
接下来是M行道路信息。
每一行有三个整数A,B,X(0<=A,B<N,A!=B,0<X<10000),表示城镇A和城镇B之间有一条长度为X的双向道路。
再接下一行有两个整数S,T(0<=S,T<N),分别代表起点和终点。
3 3
0 1 1
0 2 3
1 2 1
0 2
3 1
0 1 1
1 2
2
-1
代码:#include<iostream>
#include<cstdio>
using namespace std;
#define max 99999
#define q 205
int map[205][205];
int vis[q];
int dis[q];
int m,s,e;
int dijkstra()
{
int min1,i,j,pos;
for(i=0;i<m;i++)
{
dis[i]=map[s][i]; //直接初始 s点到 i点的距离
vis[i]=0;
}
dis[s]=0;
for(i=0;i<m;i++)
{
min1=max;
for(j=0;j<m;j++)
{
if(vis[j]==0&&dis[j]<min1)
{
min1=dis[j]; //取一条最小边
pos=j;
}
}
vis[pos]=1;
for(j=0;j<m;j++)
{
if(vis[j]==0&&dis[j]>dis[pos]+map[pos][j]) //替换初始距离
dis[j]=dis[pos]+map[pos][j];
} }
if(dis[e]!=max)
return dis[e];
else
return -1;
}
int main()
{
int a,b,c;
int n,i,j;
while(~scanf("%d%d",&m,&n))
{
for(i=0;i<m;i++)
for(j=i;j<m;j++) //初始化地图
map[i][j]=map[j][i]=max;
while(n--)
{
scanf("%d%d%d",&a,&b,&c);
if(c<map[a][b]) //可能有重边取最短边
map[a][b]=map[b][a]=c;
} scanf("%d%d",&s,&e); int ss=dijkstra();
printf("%d\n",ss);
}
return 0;
}dijkstra模板
HDU 1874 畅通project续 最短路径入门(dijkstra)的更多相关文章
- HDU 1874 畅通project续 (最短路径)
畅通project续 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- HDU 1874 畅通工程续(初涉dijkstra算法实现)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1874 dijkstra算法实现可参照此博客学习:http://www.cnblogs.com/biye ...
- 【floyd】HDU 1874 畅通project续
之后的题解偏重有用/总结性质,尽量理解算法本身而不是题,时间复杂度什么的也能够放放. 非常久之前做过这个题,当时使用dijkstra做的,关于几个最短路算法,分类的话能够分为下面几种. 1.单源最短路 ...
- hdu 1874 畅通project续
最短路问题,尽管a!=b,可是同一条路測评数据会给你非常多个.因此在读入的时候要去最短的那条路存起来.........见了鬼了.坑爹 #include<iostream> #include ...
- ACM: HDU 1874 畅通工程续-Dijkstra算法
HDU 1874 畅通工程续 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Desc ...
- HDU 1874 畅通工程续-- Dijkstra算法详解 单源点最短路问题
参考 此题Dijkstra算法,一次AC.这个算法时间复杂度O(n2)附上该算法的演示图(来自维基百科): 附上: 迪科斯彻算法分解(优酷) problem link -> HDU 1874 ...
- hdu 1874 畅通工程续
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=1874 畅通工程续 Description 某省自从实行了很多年的畅通工程计划后,终于修建了很多路.不过 ...
- HDU 1874畅通工程续(迪杰斯特拉算法)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1874 畅通工程续 Time Limit: 3000/1000 MS (Java/Others) ...
- hdoj 1874 畅通project续【SPFA】
畅通project续 Time Limit : 3000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Total Su ...
随机推荐
- 初始化一个Express项目
首先新建一个目录mkdir myblog,在该目录下运行npm init 生成package.json 然后安装express,加--save写入package.json npm i express@ ...
- nodeJS学习(3)--- npm 配置和安装 express4.X 遇到的问题及解决
前言:懒得看前面两篇介绍的也可以从本节直接参考,但建议最好了解下,因为 4.X 的express 已经把命令行工具分离出来 (链接https://github.com/expressjs/genera ...
- 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---47
以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:
- 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---23
以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:
- PMI8940 PON (power on) trigger
PMI8940 唯一的 PON input pin 是 SHDN_N, PM8937 的 VREG_L5 會接到 PMI8940 的 SHDN_N, PM8937 負責整個系統的 power on s ...
- 527. Word Abbreviation
Given an array of n distinct non-empty strings, you need to generate minimal possible abbreviations ...
- LeetCode OJ--4Sum *
https://oj.leetcode.com/problems/4sum/ 在一个数列中,找出所有的4个数,它们的和是target. class Solution { public: vector& ...
- dependencies与devDependencies的安装方法
npm install在安装node模块时,有两种命令参数可以把它们的信息写入package.json文件: –save –save-dev 但它的文档里1,只提到一个小区别,–save会把依赖包名称 ...
- 【redis】java操作redis时,StringRedisTemplate的expire()方法的作用,什么时候使用
java操作redis时,StringRedisTemplate的expire()方法的作用,什么时候使用 //重新设置过期时间为30分钟,刷新时间 redisTemplate.expire(MsOp ...
- Taskaffinity属性使用小结
TaskAffinity属性小结 最近在项目中用到了TaskAffinity属性,发现这个还是挺有意思,可以用来控制activity所属的任务栈.但同时只设置这一个属性又是不能完成功能的,需要与其它属 ...