博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
最短路径HDU3790(Dijkstra)
阅读量:4359 次
发布时间:2019-06-07

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

准备考研,荒废了好多东西,希望做了正确的决定难过

/********************************************************* *author:chen xin *email:cx2pirate@gmail.com *date:2014.09.09 * *******************************************************/#include 
#include
#define MAXINT 0x7fffffff#define MAXN 1005typedef struct{ int dis,cost;}RECORD;RECORD record[MAXN];RECORD map[MAXN][MAXN];int vis[MAXN];// O(v + e)void init(int n);RECORD dijkstra(int n,int m,int f,int t);int main(void){ int n,m,f,t; int u,v,dis,cost; while(scanf("%d%d",&n,&m) && n && m){ init(n); for(int i = 0;i < m;i++){ scanf("%d%d%d%d",&u,&v,&dis,&cost); if(map[u][v].dis > dis || map[u][v].dis == dis && map[u][v].cost > cost){ map[u][v].dis = map[v][u].dis = dis; map[u][v].cost = map[v][u].cost = cost; } } scanf("%d%d",&f,&t); RECORD res = dijkstra(n,m,f,t); printf("%d %d\n",res.dis,res.cost); } return 0;}void init(int n){ for(int i = 1;i <= n;i++){ vis[i] = 0; record[i].dis = record[i].cost = MAXINT; for(int j = 1;j <= n;j++){ map[i][j].dis = map[i][j].cost = MAXINT; } }}int relaxable(RECORD u,RECORD v,RECORD edge){ if((u.dis + edge.dis) < v.dis){ return 1; } if(u.dis + edge.dis == v.dis && u.cost + edge.cost < v.cost){ return 1; } return 0;}RECORD dijkstra(int n,int m,int f,int t){ record[f].dis = record[f].cost = 0; for(int i = 1;i <= n;i++){ int min,min_dis = MAXINT,min_cost = MAXINT; for(int j = 1;j <= n;j++){ if(!vis[j] && (record[j].dis < min_dis || record[j].dis == min_dis && record[j].cost < min_cost)) { min = j; min_dis = record[j].dis; min_cost = record[j].cost; } } vis[min] = 1; for(int k = 1;k <= n;k++){ if(!vis[k] && map[min][k].dis < MAXINT && relaxable(record[min],record[k],map[min][k])) { record[k].dis = record[min].dis + map[min][k].dis; record[k].cost = record[min].cost + map[min][k].cost; } } } return record[t];}//11626983 2014-09-09 23:02:13 Accepted 3790 312MS 8144K 2232 B G++ 超级旅行者

 

 

转载于:https://www.cnblogs.com/codingMozart/p/6439728.html

你可能感兴趣的文章
单点登陆(SSO)
查看>>
HR,也确实“尽职尽责”
查看>>
MaxComputer 使用客户端配置
查看>>
20190823 顺其自然
查看>>
阅读《余生有你,人间值得》有感
查看>>
每日英语
查看>>
SpringCloud+feign 基于Springboot2.0 负载均衡
查看>>
【BZOJ5094】硬盘检测 概率
查看>>
mac上n次安装与卸载mysql
查看>>
Python之单元测试——HTMLTestRunner
查看>>
WebNotes(PHP、css、JavaScript等)
查看>>
C++:文件的输入和输出
查看>>
Http协议、Tomcat、servlet
查看>>
Spring Boot (11) mybatis 关联映射
查看>>
macOS 下安装tomcat
查看>>
字符串格式化复习笔记
查看>>
jquery之ajax
查看>>
Pro Git(中文版)
查看>>
解决phpmyadmin-1800秒超时链接失效问题
查看>>
OpenGL第十一节:拉伸和过滤
查看>>