hdu2544 最短路
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2544
最短路径DIJKSTRA
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<stdlib.h>
#include<limits.h>
#include<iostream>
using namespace std;
const int N=;
int a[N][N];//用于标记两个路口的默认距离(权值)
int use[N];//标记是否使用
int d[N];//两点间最短距离
int n,m;
void dijkstra(int u)
{
memset(use,,sizeof(use));
for(int i=;i<=n;i++)
d[i]=a[u][i];//初始化赋值
use[u]=;//1路口起点标记使用
d[u]=;//1 1 距离为0
for(int i=;i<=n;i++)
{
int min=INT_MAX;//理论最大值
int v=-;//设v为一个不可能的点
for(int w=;w<=n;w++)//在所有未标记use中,选择d最小的点
{
if(!use[w] && d[w]<min)
{
min=d[w];
v=w;
}
}
if(v!=-)//没有路径则不更新
{
use[v]=;//标记使用
for(int w=;w<=n;w++)
{
if(!use[w] && (a[v][w]<INT_MAX))//确定未使用以及拥有路径
{
if(d[w] > min+a[v][w])//比较,取得最小距离
d[w]=min+a[v][w];
}
}
}
}
// for(int i=1;i<=n;i++)
// printf("%d ",d[i]);
// cout<<endl;
printf("%d\n",d[n]);
}
int main()
{
//freopen("in.txt","r",stdin);
while(~scanf("%d%d",&n,&m)&&n&&m)
{
int x,y,c;
for(int i=;i<=n;i++)
{
for(int j=;j<=n;j++)
a[i][j]=INT_MAX;
}
for(int i=;i<m;i++)
{
scanf("%d%d%d",&x,&y,&c);
a[x][y]=a[y][x]=c;
}
dijkstra();
}
return ;
}
hdu2544 最短路的更多相关文章
- HDU-2544 最短路 Dijkstra模板题
题目链接:https://vjudge.net/problem/HDU-2544 题意: 题目要求找到节点1到节点n之间的一条最短路 分析: Dijkstra模板题 单源最短路径,可以用dijkstr ...
- HDU2544 最短路dij
纯最短路. ///HDU 2544堆优化的最短路 #include <cstdio> #include <iostream> #include <sstream> ...
- hdu2544 最短路 Dijkstra算法
最短路(Dijkstra算法模板题) Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Other ...
- HDU2544 最短路 2017-04-12 18:51 31人阅读 评论(0) 收藏
最短路 Time Limit : 5000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Total Submissio ...
- hdu2544最短路(floyd基础)
最短路 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
- 最短路径(最基础,经典的模板和思想):HDU-2544最短路
题目: 最短路 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Su ...
- [hdu2544]最短路spfa
解题关键:最短路模板一直没整理过,这里整理了一下spfa+链式前向星建图的最短路模板,以后网络赛省的打了. spfa算法的关键就是松弛操作,只有进行松弛操作,其后的点距离才可能被更新. #includ ...
- hdu-2544 最短路(最短路)
Time limit1000 ms Memory limit32768 kB 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt.但是每当我们的工作人员把上百件的衣服从商店运回到 ...
- HDU2544最短路(dijkstra)
用dijkstra来练练手 #include<iostream> #include<stdio.h> #include<string.h> #include< ...
随机推荐
- 网站如何提高PR值
做了站长这些年,积累些经验,记录下来,分享兄弟. 一.商城类型网站 对于商城型的网站站内优化来说,主要是用户咨询和浏览产品时产生的疑问.比如当某用户看到一些自己感兴趣的产品需要咨询的时候,自然就会寻找 ...
- javascript对象与实例
var person=new Object(); var person2={}; 一切都是对象 person是Object的实例, 也是对象. 第二个person2也是如此,只不过它是采用字面量的方式 ...
- jquery hover事件冒泡解决方法
$(this).hover(function(event){ $(this).addClass("cur"); event.stopPropagation(); ...
- fis3简单教程
#进入工作目录初始化fis3目录(此步非必须,如果当前目录已有fis-conf.js文件,可以不用初始化)fis3 init#部署(<path>为部署目录,如果想部署到当前output目录 ...
- 在Java中执行js代码
在某些特定场景下,我们需要用Java来执行Js代码(如模拟登录时,密码被JS加密了的情况),操作如下: ScriptEngineManager mgr = new ScriptEngineManage ...
- Mysql数据库中的计数器表实时更新
如果某个应用中存在计数器,例如网站的总访问量.用户的粉丝数.文件下载数等等.如果相关应用在Mysql数据库的表中保存计数器,在更新计数器的时候可能会碰到并发问题.例如在web应用中,记录网站的点击次数 ...
- mysql 连接语句
在 SELECT 语句中,如果 FROM 子句引用了多个表源或视图,可以使用 JOIN 指示指定的联接操作应在指定的表源或视图之间执行. 一.交叉联接:CROSS JOIN 交叉联接将执行一个叉积(迪 ...
- js SVG
Snap.svg Paths.js http://www.sitepoint.com/creating-animated-valentines-day-card-snap-svg/
- Ajax ContentType 列表
".*"="application/octet-stream" ".001"="application/x-001" & ...
- ios 图形学习笔记
一.显示文本: 1.UIFont,用于设置显示的字体 初始化方法:fontNamesForFamilyName:(类方法) fontWithName:size:(类方法) 2.绘制文本的方法: NSS ...