杭电hdu 3790 最短路径问题 dijkstra
来源:互联网 发布:淘宝开店要两个银行卡 编辑:程序博客网 时间:2024/03/29 08:31
http://acm.hdu.edu.cn/showproblem.php?pid=3790
简单记录代码
#include <stdio.h>#include <string.h>#define MAX 1001#define INF 999999999typedef struct _road{int d;int p;}road;road map[MAX][MAX];int n, m;void init(){int i, j;for(i = 1; i <= n; i ++){for(j = 1; j <= n; j ++){map[i][j].d = INF;map[i][j].p = INF;}}}void dijkstra(int start, int end){int dist[MAX];int cost[MAX];int min1, min2;int pre[MAX];memset(pre, 0, sizeof(pre));int i, j, v;for(i = 1; i <= n; i ++){dist[i] = map[start][i].d;cost[i] = map[start][i].p;}pre[start] = 1;//循环做n-1次for(i = 1; i < n; i ++){min1 = INF;min2 = INF;//记录当前最短路径的顶点for(j = 1; j <= n; j ++){if(pre[j] == 0 && (min1 > dist[j] || (dist[j] == min1 && min2 > cost[j]))){v = j;min1 = dist[j];min2 = cost[j];}}if(min1 == INF)break;pre[v] = 1;//更新for(j = 1; j <= n; j ++){if(pre[j] == 0){if((dist[v] + map[v][j].d) <= dist[j] || (dist[v] + map[v][j].d == dist[j] && cost[v] + map[v][j].p < cost[j])){dist[j] = dist[v] + map[v][j].d;cost[j] = cost[v] + map[v][j].p;}}}}printf("%d %d\n", dist[end], cost[end]);}int main(){int a, b, d, p;int i;int s, t;while(scanf("%d%d", &n, &m)!=EOF){if(n ==0 && m == 0)break;init();for(i = 0; i < m; i ++){scanf("%d%d%d%d", &a, &b, &d, &p);//过滤重边if(d < map[a][b].d || (d == map[a][b].d && p < map[a][b].p)){map[a][b].d = map[b][a].d = d;map[a][b].p = map[b][a].p = p;}}scanf("%d%d", &s, &t);dijkstra(s, t);}return 0;}
- 杭电hdu 3790 最短路径问题 dijkstra
- 最短路径问题 HDU杭电3790 【Dijkstra算法】
- 杭电 hdu 3790 最短路径问题 (最短路径 + Dijkstra)稍微的变形
- 最短路径问题(杭电3790)(Dijkstra)
- 【杭电oj】3790 - 最短路径问题(dijkstra)
- HDU 3790 最短路径问题(Dijkstra)
- HDU--3790最短路径问题 【Dijkstra】
- hdu 3790 最短路径问题(Dijkstra)
- HDU 3790:最短路径问题【Dijkstra】
- HDU-3790 最短路径问题(Dijkstra)
- HDU 3790 最短路径问题(dijkstra)
- 杭电ACM HDU 3790 最短路径问题
- HDU--杭电--3790--最短路径问题
- hdu 3790 最短路径问题 最短路Dijkstra
- HDU 3790 最短路径问题【最短路 dijkstra 双权值】
- 【杭电OJ】3790--最短路径(dijkstra)
- 杭电 3790 最短路径问题
- 杭电3790最短路径问题
- 腾讯三面(hr面)之轻松过关
- arm-elf-tools 与 arm-linux-tools 的区别
- Linux下oracle 11g的安装
- Android Donut Makefile分析 (build/envsetup.sh)
- 关于旁路电容的深度对话
- 杭电hdu 3790 最短路径问题 dijkstra
- this application has requested the runtime to terminate it in an unusual way
- MFC框架类、文档类、视图类相互访问的方法
- 安装arm-elf-tools-20030314.sh 的问题的解决方法
- 【C语言】 计数、求和、求阶乘等简单算法
- Java Native Methods 例子
- 重学设计模式 - Strategy模式
- build/envsetup.sh 简介
- wchar_t与char(系统默认编码集,非UTF8)的转换