博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 1874
阅读量:4983 次
发布时间:2019-06-12

本文共 821 字,大约阅读时间需要 2 分钟。

#include<stdio.h>
#include<string.h>
#define N 300
#define inf 1000000000
int map[N][N],dis[N],n;
void dijkstra(int v0) {
int i,j,u,min,visit[N];
memset(visit,0,sizeof(visit));
for(i=0;i<n;i++) 
dis[i]=map[v0][i];
visit[v0]=1;
    for(i=0;i<n-1;i++) {
min=inf;
for(j=0;j<n;j++)
if(min>dis[j]&&visit[j]==0) {
min=dis[j];
u=j;
}
visit[u]=1;
for(j=0;j<n;j++) 
if(visit[j]==0&&map[u][j]<inf) {
if(dis[u]+map[u][j]<dis[j])
dis[j]=dis[u]+map[u][j];
}
}
}
int main() {
int m,i,j,k,a,b,c,s,t;
while(scanf("%d%d",&n,&m)!=EOF) {
for(i=0;i<n;i++) 
for(j=0;j<n;j++)
map[i][j]=i==j?0:inf;
while(m--) {
scanf("%d%d%d",&a,&b,&c);
if(map[a][b]>c)//必须要加
map[a][b]=map[b][a]=c;
}
scanf("%d%d",&s,&t);
dijkstra(s);
if(dis[t]>=inf)
printf("-1\n");
else
printf("%d\n",dis[t]);
}
return 0;
}

转载于:https://www.cnblogs.com/thefirstfeeling/p/4410936.html

你可能感兴趣的文章
18.3.2从Class上获取信息(构造器)
查看>>
【TortoiseGit】TortoiseGit将本地库push到远端
查看>>
怎么样学习算法导论理论知识-算法何用
查看>>
Jenkins使用手册及总结
查看>>
Latest Common Ancestor
查看>>
getByClass--获取指定标签且class为指定的所有元素
查看>>
三点顺序
查看>>
拟物化设计与扁平化设计
查看>>
PS小实验-去除水印
查看>>
IS-IS完整笔记
查看>>
★如何解释特修斯之船问题?
查看>>
玩转PS路径,轻松画logo!
查看>>
Python简介及学习
查看>>
!!!后续博客写到简书 + 博客园留博客目录
查看>>
小白学数据分析-----> 利用SPSS对DAU/MAU进行比率分析
查看>>
js中this与srcElement的区别
查看>>
第一个MyBatis程序
查看>>
.net 数据库缓存依赖:【实例与解释】
查看>>
Android Service小试 启动和停止service
查看>>
一天一个设计模式:适配器模式
查看>>