hdoj 3790 最短路径问题(根据两个变量的最短路)
来源:互联网 发布:剑网3如何捏脸数据 编辑:程序博客网 时间:2024/05/02 16:00
多加一个判断就好- -
#include <iostream>#include <cstdio>#include <cstring>using namespace std;const int N = 1000 + 10;const int MAX = 0xfffffff;int map[N][N], cost[N][N];int min_dist, min_cost;void Dijkstra(int s, int t, int n){ int dist[N],cost1[N]; bool visit[N]; int i,j; memset(visit, false, sizeof(visit)); for(int i = 1; i <= N; ++i) { dist[i] = map[s][i]; cost1[i] = cost[s][i]; } dist[s]=0; visit[s]=true; for(i=1;i<n;++i) { int min = MAX; int k; for(j=1;j<=n;++j) { if(!visit[j]&&min>dist[j]) { min=dist[j]; k=j; } } visit[k]=true; for(j=1;j<=n;++j) { if(!visit[j]&&dist[j]>min+map[k][j]) { dist[j]=min+map[k][j]; cost1[j]=cost[k][j]+cost1[k]; } else if(!visit[j]&&dist[j]==min+map[k][j]&&cost1[j]>cost[k][j]+cost1[k]) { cost1[j]=cost[k][j]+cost1[k]; } } if(visit[t]) { min_dist=dist[t]; min_cost=cost1[t]; return ; } } min_dist=dist[t]; min_cost=cost1[t];}int main(){ int n,m,i,j; while(scanf("%d%d",&n,&m)&&(m||n)) { for(i=1;i<=n;++i) for(j=1;j<i;++j) { map[i][j]=map[j][i]=MAX; cost[i][j]=cost[j][i]=MAX; } while(m--) { int a,b,c,d; scanf("%d%d%d%d",&a,&b,&c,&d); if(map[a][b]>c) { map[a][b]=map[b][a] =c; cost[a][b]=cost[b][a]=d; } } int s,t; scanf("%d%d",&s,&t); Dijkstra(s,t,n); printf("%d %d\n",min_dist,min_cost); } return 0;}
0 0
- hdoj 3790 最短路径问题(根据两个变量的最短路)
- HDOJ 3790 最短路径问题(最短路的路径追踪)
- HDOJ 3790 最短路径问题(双权值最短路)
- HDOJ 3790 最短路径问题(双关键字最短路)
- HDOJ 3790 最短路径问题 (最短路 && Dijkstra && 双权值)
- hdu 3790 最短路径问题(两个限制条件的最短路)
- hdu 3790 最短路径问题(多权值的最短路)
- HDOJ题目2544 最短路(最短路径问题,Dijkstra模板)
- HDOJ 3790 最短路径问题
- HDOJ 3790 最短路径问题
- HDOJ 3790最短路径问题
- HDOJ 3790 最短路径问题
- hdoj 3790 最短路径问题
- Hdoj 3790 最短路径问题
- hdoj 3790 最短路径问题
- hdoj--3790--最短路径问题(双权值迪杰斯特拉)
- HDOJ 3790 最短路径问题
- HDOJ 3790 最短路径问题
- Android开发设计模式之——单例模式
- 面试笔试杂项积累-leetcode 101-105
- 组态王为什么一定要定义一个COM口?
- 基本算法——第五单元 递归
- 关于OpenCV3.1读取摄像头图像黑屏情况
- hdoj 3790 最短路径问题(根据两个变量的最短路)
- Eclipse快捷键大全
- 策略模式
- Linux文件系统
- 基本算法——第六单元 回溯
- 计算机网络5--网络核心之数据交换基础及电路交换
- 命令模式
- Android_Studio快捷键和使用技巧
- 关于python对于aspx网页的post提交